默认
发表评论 2
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求教关于RainbowChat 群聊离线消息存储逻辑的疑问
阅读(16532) | 评论(2 收藏 淘帖
群聊逻辑中首先利用一个线程去处理一条消息的转发,其中会拿到缓存中的群员信息,循环进行推送,如果推送失败则进行存储离线消息。

请问这里的逻辑是否可以提前判断群员在线状态,如果在线则进行推送,不在线则直接下一条,等最后批量给离线用户插入离线消息数据。
或者说用户虽然判断离线,实际可能在线?请问会出现这种情况吗



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

上一篇:[已解决] 请教RainbowChat服务端C2S消息处理中的一些业务问题下一篇:[已回复] 请教用TCP/UDP Proformance Test Tool工具测试RainbowChat的一些问题
推荐方案
评论 2
是的,如果在线人数多,且发送是有耗时的,等在线全发完后,在这个时间差之内,可能此时的‘离线“状态就已经不准确了,极端情况下,用户上线时就没有拉到刚才的”离线“消息,会影响体验。

其实,群聊的这段代码是有优化空间的,比如你可以在现有的逻辑上,为了不让离线消息因数据库的慢IO拖累性能,可以把它扔到mq或redis里,再由mq或redis的消费者再去往数据库里落库,这样就既不影响实时消息的吞吐效率,又能保证在线状态的准确性
我先下班吃饭了,晚点回复你
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部