zy-im 是一个基于 Netty 的 IM 服务,支持 http 及多个应用。
软件架构
springboot2.3.4 + netty4.1.54 + redis + mongodb + protobuf
使用说明
- http 调用 /register/app 接口创建 App,默认 Auth 为 !#-im-LZ114.Demo!-#0202*001
- 拿到 AK 和 SK 后调用 /register/user 接口创建用户,注意,userId 必须唯一
- 拿到 AK 和 SK 后客户端和服务端可建立长连接 TCP server:localhost:8999
- 通道建立后第一个请求必须是认证,请求 model 如下: {cmd: 996 appName: "xiangkan", accessKey: "osuuCV54u10="}
- 认证通过后发送心跳 model:
- 一对一聊天,需建立 sessionID 后才能互发消息,代码具体参考 com.wqnmdb.im.client.NettyClientHandler,数据模型参考 com.wqnmdb.im.domain.netty.protobuf
- 认证通过后不需要再传 appName,accessKey,secretKey
- 关于消息处理机制(com.wqnmdb.im.netty.dispose.impl.MsgDisposeImpl):
- 测试运行 NettyClient 即可,如不使用 Minio,删除 FileController、MinioService、MinIoProperties 及配置即可
- 系统启动时会清理所有缓存并创建所有 app 的通道容器,如有统计需求请自行拓展 NettyData
- 配置 redis 及 mongodb 相关地址