默认
发表评论 3
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教关于IM自已发出的群聊消息的发送和显示逻辑?
家人们,IM 系统中。群聊消息,例如我在群聊中发送一条消息,这条消息何时渲染在对话框中?

1,广播给群内所有成员,包括自己,客户端收到消息直接渲染在对话框,通过 发送者 ID 判断是否是自己发送的消息。
2,客户端在发送消息后等待服务器返回消息发送的ACK后,然后渲染在聊天面板上。广播的时候,不给自己推送消息。

大家一般采用哪种啊?或者说有啥更好的设计没。


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

标签:求助 IM开发
上一篇:求教IM会话列表数据和本地数据处理方案?下一篇:im中少数用户的联系人和聊天记录非常大,业界一般如何处理

本帖已收录至以下技术专辑

推荐方案
评论 3
我觉得在你不考虑实现微信那种所有端消息漫游和同步的特性的情况下,你不需要把事情搞复杂。你就这样简单实现(不需要纠结自已的消息还要不要让服务务端再发回给你自已,没有这么傻的逻辑):

第一步:你本地发出的消息,就直接在聊天界面中显示,但显示时消息气泡后面同时显示一个进度提示(就是那个转圈的菊花,你可以把RainbowChat下载下来参照一下)。
第二步:你发出的消息,收到服务端的应达ACK后,就可以取消这个进度显示(表示成功送达)。

以上,完事。
引用:JackJiang 发表于 2024-05-11 11:57
我觉得在你不考虑实现微信那种所有端消息漫游和同步的特性的情况下,你不需要把事情搞复杂。你就这样简单实 ...

服务端的ACK 是指? 服务端接收并保存后就算ACK,还是 别的成员都接收到才算ACK?
这要看业务要求吧?
引用:blackheyan 发表于 2024-05-13 17:03
服务端的ACK 是指? 服务端接收并保存后就算ACK,还是 别的成员都接收到才算ACK?
这要看业务要求吧?

那肯定是送到服务端就算,不然还要等成员收到再ack,那就没办法ack了,1000个成员,那1000个ack回你?这不可能的。

逻辑上来说,你能保证成功送达给服务端,你的事就完了,余下的服务端能不能成功送达给成员,那就是服务端的责任了

打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部