默认
发表评论 8
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
请教一下大家,IM里全服消息广播该怎么做呢?
阅读(41128) | 评论(8 收藏 淘帖
我们现在是采用扩散写的方式去实现单聊跟群聊,然后每次有新消息都是先落主库,然后落到收件箱,再通知客户端来拉取消息。 这样的设计在准备实现全服广播时就晕了,总不能把所有在线用户都扩散写消息吧?这得崩啊。   
我初步想的是全服消息就跟其它消息不一样,不保证一定送达,就作为一种特殊消息,只在主库存一份,然后直接分发到各个网关主机上,然后遍历每台在线设备通知下去。 能收到的就收到,不能收到就拉倒。
不知道这样的想法对不对?

即时通讯网 - 即时通讯开发者社区! 来源: - 即时通讯开发者社区!

标签:求助
上一篇:求助关于IM中的加密的问题处理,以及多协议的支持下一篇:直播系统聊天技术(二):阿里电商IM消息平台,在群聊、直播场景下的技术实践
推荐方案
评论 8
你说的扩散写的意思是,先写到库里,然后让客户端通过http来拉是吗?
楼主就是想优化群聊的消息写性能是吧,
全服消息广播这个说法,有点不理解
引用:JackJiang 发表于 2020-11-26 13:41
你说的扩散写的意思是,先写到库里,然后让客户端通过http来拉是吗?

不是,是我们在单聊和群聊的时候通过先写到每个人的收件箱里,然后通知用户通过tcp来拉最新消息
引用:徐洋 发表于 2020-11-26 14:04
不是,是我们在单聊和群聊的时候通过先写到每个人的收件箱里,然后通知用户通过tcp来拉最新消息

每条消息都是先通知,然后再拉?
引用:JackJiang 发表于 2020-11-26 14:45
每条消息都是先通知,然后再拉?

拉的话还是跟单聊一样 往每个人的收件箱写一份消息?这样瞬间写扩散是不是太夸张?
还是说维护一个全服消息的收件箱? 然后客户端维护一个自己的收件箱游标和全服消息的收件箱游标?
引用:徐洋 发表于 2020-11-26 15:45
拉的话还是跟单聊一样 往每个人的收件箱写一份消息?这样瞬间写扩散是不是太夸张?
还是说维护一个全服 ...

你仔细读读这篇《IM群聊消息究竟是存1份(即扩散读)还是存多份(即扩散写)?
这种全服消息应当算是推送通知,不需要入库。只需要统计推送到达率就可以了。

可以直接广播到网关,给在线的用户推一次就可以了。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部