完整的IM架构设计

服务的主体功能为提供消息的在线转发和离线消息的获取。从产品侧角度,衍生出多平台的同步转发、互踢及群组的需求。功能上需要提供消息指定路由转发、是否持久化、在线离线机制、心跳包、通知送达、授权验证等。从技术层次上划分,网络层提供长连接/短连接的服务,路由层提供转发,存储层提供持久化。额外的产品需求,还包含第三方的推送和订阅服务。

整体结构如下图:

 

 

具体功能:

1、用户接入及消息流程

如下图,用户登陆获取授权,通过jwt token 接入websocket,发送心跳及消息,消息路由到指定的在线用户

 

2、离线消息

用户的消息除了特殊可丢消息以外默认会入库,包含个人消息和组消息等,离线消息按照顺序存储。。为保证客户端能同步到离线的消息,客户端在启动或重连成功后,需调用离线接口直至空为止,表示客户端已取完所有离线。

3、推送

推送服务从中间件拉取消息,解析消息并补充相应的昵称等,组装消息调用第三方推送接口发送

4、订阅

支持第三方服务从订阅的群获取消息。目前订阅仅支持webhook,订阅服务通过实时的解析数据,调用相应的http接口进行消息的投递

第三方可通过http接口向指定群发送消息

5、统计

对活跃用户,用户消息,总用户数,当天新增用户量等进行统计

6、用户注册

添加用户时,生成唯一的id标识。

7、群成员管理

群成员添加删除及缓存处理,在服务维护成员关系,便于群消息的发送

8、用户管理系统

包含APP的用户同步,增删改查,用户关系

9、设置

用户的APP设置,如静音,屏蔽,拉黑关系等

10、登录

短信登陆、支持使用微信等第三方登录

11、多端的数据同步

含Android、ios、PC的数据同步

 

技术实现:

待续。。。

  • 0
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值