名称 最后更新
cim-client 正在载入提交数据...
cim-common 正在载入提交数据...
cim-forward-route 正在载入提交数据...
cim-server 正在载入提交数据...
cim-zk 正在载入提交数据...
pic 正在载入提交数据...
protocol 正在载入提交数据...
script 正在载入提交数据...
springboot-admin 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
pom.xml 正在载入提交数据...


介绍

CIM(CROSS IM) 一款面向开发者的 IM(即时通讯)系统;同时提供了一些组件帮助开发者构建一款属于自己可水平扩展的 IM 系统。

借助 CIM 你可以实现以下需求:

  • IM 即时通讯系统。
  • 适用于 APP 的消息推送中间件。
  • IOT 海量连接场景中的消息透传中间件。

老版本已经归档到这里

cim-server

IM 服务端;用于接收 client 连接、消息透传、消息推送等功能。

支持集群部署。

cim-forward-route

消息路由服务器;用于处理消息路由、消息转发、用户登录、用户下线以及一些运营工具(获取在线用户数等)。

cim-client

IM 客户端;给用户使用的消息终端,一个命令即可启动并向其他人发起通讯(群聊、私聊)。

TODO LIST

  • 群聊。
  • 私聊。
  • 内置命令。
  • 使用 Google Protocol Buffer 高效编解码。
  • 协议支持消息加密。
  • 弱网情况下的客户端自动上线。
  • 更多的客户端路由策略。
  • 远程通信更换为 SpringCloud

系统架构

  • CIM 中的各个组件均采用 SpringBoot 构建。
  • 采用 Netty 构建底层通信。
  • Redis 存放各个客户端的路由信息、账号信息、在线状态等。
  • Zookeeper 用于 IM-server 服务的注册与发现。

流程图

  • 客户端向 route 发起登录。
  • 登录成功从 Zookeeper 中选择可用 IM-server 返回给客户端,并保存登录、路由信息到 Redis
  • 客户端向 IM-server 发起长连接,成功后保持心跳。
  • 客户端下线时通过 route 清除状态信息。

联系作者