默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
求教关于IM中服务端做消息撤回功能的问题
阅读(42596) | 评论(4 收藏 淘帖
对于用户单聊的撤回功能,我个人分析了有四种状态
1.A给B发消息时,B在线,A撤回时,B也在线,这种是最理想的状况,只需要删除数据库的聊天记录数据就行了
2.A给B发消息时,B在线,A撤回时,B不在线,这种情况,也算简单,只需要删除数据库的在线聊天数据,然后把撤回这一动作当作一条消息存入离线消息数据库,等B登陆时拉取离线消息就行了,然后B再让服务端删除离线消息。
3.A给B发消息时,B不在线,A撤回时,B也不在线。这种情况需要删除聊天记录数据和离线聊天数据。
4.A给B发消息时,B不在线,A撤回时,B在线,这个时候则需要删除数据库的聊天记录。
问题一:
客户端A在做撤回这个动作的时候,qq或微信或者其他IM具体是怎么做的?是客户端A发条指令给服务端,然后又服务端转发给客户端B吗?还是客户端A发条指令给客户端B
问题二:
“撤回”这种功能在IM中是当做一条“特殊的消息”吗?是不是要录入到数据库的聊天记录表里面去
问题三:
前面的 第2,第3,和第4,要如何区分比较好,要如何实现比较好?
先谢谢大佬的解答!感激不尽

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

标签:IM开发
上一篇:一文读懂即时通讯应用中的网络心跳包机制:作用、原理、实现思路等下一篇:求助公司自己搭建了IM应用,iOS端消息推送部分该如何实现?
推荐方案
评论 4
引用:弱鸡哥 发表于 2019-08-08 20:03
楼主的问题一,肯定是A把指令发给服务端,服务端处理完撤回逻辑后,再转发指令给B,不然服务端的聊天记录、 ...

谢谢
引用:JackJiang 发表于 2019-08-08 19:49
我看你写的逻辑,比较清晰,但技术问题应该要看到本质,就不会感觉复杂了。

其实,消息撤回的本质就是: ...

非常感谢
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部