默认
发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
[已回复] 求教IM中消息回执已读通知的最佳设计思路
阅读(35332) | 评论(6 收藏1 淘帖
内容是:ClintA发送ClintB发消息,同是处理正在聊天,ClintB此时查看消息,并且调用后端标记消息已读的接口,ClintB要发送一条指令通知A,  ClintB通知是走IM应用层回调-C2C还是走S2C,如果ClintB离线或者在线没有和ClintA正在聊天,ClintA发送过来时候ClintB有红点闪烁有新消息,然后选中ClintB查看消息调用后端标记消息已读的接口,回调M应用层-C2C 发通知ClintB一条指令给ClintB消息已读了。1、我打算做单聊消息已读回执功能
2、我的思路:已读1,未读是0,a发消息给b,b刚好界面是和a的聊天界面,消息过来,默认是已读的,b页面调个后端接口把这条消息标识变成已读,后端在把通知推送给a
3、目前的疑问:如何修改中间层MQ逻辑

[已回复] 求教IM中消息回执已读通知的最佳设计思路_222.jpg


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

推荐方案
评论 6
已读回执可以直接用c2c,不要去碰c2s,会把问题搞复杂。
回执相当于一条特殊的聊天消息,只是这条消息的内容里是要回执的消息指纹码,而且它不是直接用来显示,而只是用于在ui界面上将指定的消息,设置为“已读”。

你仔细体会一下我的意思。这样的设计是最优雅的,基本没有动主消息传递逻辑。

评分

1

查看评分

具体实现步骤以及离线消息
引用:JackJiang 发表于 2019-11-29 22:23
已读回执可以直接用c2c,不要去碰c2s,会把问题搞复杂。
回执相当于一条特殊的聊天消息,只是这条消息的内 ...

如果这个特殊的消息发送失败怎么处理
引用:mikeddd 发表于 2021-12-07 21:54
如果这个特殊的消息发送失败怎么处理

那就想办法存离线
引用:JackJiang 发表于 2021-12-08 11:19
那就想办法存离线

比如 这个特殊消息,经过qos机制,最终发送失败,进入丢失消息队列,楼主的意思是这时候要把这个消息发送给服务器存入离线消息表,等待客户端主动拉取相关离线消息时再返回吗?
引用:mikeddd 发表于 2021-12-08 14:37
比如 这个特殊消息,经过qos机制,最终发送失败,进入丢失消息队列,楼主的意思是这时候要把这个消息发送 ...

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

返回顶部