开发IM不难,但是真的耗费时间,使用水磨方法,把项目做起来的。当前IM项目结构如下:

序号 项目 子项目 技术栈  说明                              
1 im-pc        fx-gui javafx + netty + webrtc-java

pc端,支持windows, linux, macos。仿微信,没有微信的小程序以及支付功能

1 fx-monitor javafx + netty pc端,支持windows, linux, macos。监控IM
2 im_app flutter + bloc + flutter_webrtc android + ios。
3 im_hm emoji arkts 统一的emoji。各端使用统一的emoji,避免不一致
3 core arkts 鸿蒙手机。
4 im_wasm rust +yew+hooks+sqlite + web-sys 页面端
5 im-server file-server netty 文件服务器。支持附件,图片等文件上传和下载
5 server-core mysql or mongodb im的主业务区,采用插件的方式,支持mysql和mongodb数据存储方式
5 socket-server netty 自研Router。对外提供访问接口
5 websocket-server netty 自研Router。对外提供访问接口
5 udp-server netty 半成品。由于对udp的dos攻击未找到处理方式,项目搁置
5 monitor-server netty 监控服务端
5 signal-server netty 信令服务器。webrtc使用
6 im-web im-admin springboot 后台。通过maker代码自动生成,然后进行修改
6 im-client springboot 对外提供web 接口
7 rpc netty 基础组件:IM接口通信核心组件。通信支持二级制和json。   接口支持同步和异步两种 模式。
8 im-base java 基础组件:通信对象,封装供java服务端和客户端使用
9 StupidBear java 基础组件:自研的二进制编解码
10 common java 基础组件:技术积累
11 maker javafx 工具:代码生成器。im-web后端大部分代码都是自动生成的
Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐