即时通讯之大架至简

大道至简

解释:大道理是极其简单的,简单到一句话就能说明白

大架至简

解释:越复杂的架构底层逻辑应该极其简单的,简单到一句话就能说明白

举例

计算机如此复杂底层是0和1

世界万物如此多样性,底层是氨基酸

事物千变万化底层是“阴和阳”

实践

即时通讯上层是很复杂的,比如有单聊会话,群聊会话,客服会话等等,单聊有fromUID,群聊有groupNo,客服有customerServicNo,三个会话消息投递的路径都不一样:

单聊:找到toUID(uid为用户ID)的用户,然后消息投递即可

群聊:找到群对应的所有群成员,然后消息投递即可

客服:根据客服分配逻辑找到对应的客服人员,然后将消息投递

根据大架至简的逻辑,底层越复杂上层的复杂系数是倍数递增的,比如这里有单聊,群聊,客服,上层发消息至少要经过三个if,如果上层也有二个逻辑if,那就是要六个if也就是3x2的复杂系数

我们可以把单聊,群聊,客服等都简化为频道和订阅者的关系。

消息投递路径统一变成了:找到订阅者列表,然后消息投递

频道有channelID,channelType

单聊

channelID为 双方的uid(用户id)通过@拼接(比如:fromUID@toUID),uid通过hash后比较大小,大的uid放前面。channelType为1,订阅者为fromUID和toUID

群聊

channelID为群编号,channelType为2,订阅者为群成员

客服

channelID为客服编号,channelType为3,订阅者为第三方客服服务撮合的成员,(成员一般有客服人员的uid和访客的uid)

最后单聊,群聊,客服等等都统一成了频道

悟空IM开源地址:https://github.com/WuKongIM/WuKongIM

展开阅读全文

页面更新:2024-03-05

标签:客服   系数   底层   即时通讯   路径   逻辑   成员   消息   简单   用户   频道

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top