IM系统分析
前言
为什么要做一个IM
?这个想法是从一个聊天项目开始,公司原来的聊天项目已破败不堪,继续优化不如重构。经过一番了解,决定构建一个即时通讯,并在此基础上扩展聊天功能。
目前网络上的IM
案例数不胜数,参考网络中众多的案例并结合自身业务需要,来构建属于自己的IM
系统。
场景
- 社交
- 在线客服
- 待办提醒、工作提醒等
- 抽奖
- 红包
举个例子:
我们年会有红包抽奖活动,有999红包10个 ,888红包20个,88红包50个,8红包1000个,我们需要实时看到每种红包剩余数量。
目标
整体目标
整体项目构建目标:
- 即时通讯系统(
IM
)。 - 聊天系统(
IM-Chat
) - 后端管理平台
- 应用管理平台
技术目标
- 小型化
- 单节点万人同时在线
- 可水平扩展
- 多通讯协议
- 第三方登录
- 服务监控
在移动端,长连接是未来趋势,并且比Http
请求的数据量更小(像WebSocket
,连接只需要一个 headers
)。
阶段性目标
一阶段
- 小型化
- 单节点万人同时在线
- 可水平扩展
- 通讯协议:
WS
- 接入端:
HTML5
二阶段
- 第三方登录
- 服务监控
三阶段
- 通讯协议:
TCP
/HTTPS
Android
/IOS
四阶段
- 界面美化
难点目标
Android/IOS
离线推送- 多节点时服务治理
关键字
后台管理系统:指的是IM
全局管理系统,包括租户管理、租户的应用管理等。
应用管理系统:指的是IM
租户管理当前租户应用的系统。
应用:指的是租户创建的IM
应用,IM
允许跨应用之间的通信,IM-Chat
则不允许跨应用添加好友。