默认
发表评论 4
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
我看你写的逻辑,比较清晰,但技术问题应该要看到本质,就不会感觉复杂了。

其实,消息撤回的本质就是:
将原先那条正常的消息内容变成“谁谁谁已撤回一条消息!”。

所以不管情况有多少种,你要做的事情就是:
新增“消息撤回”这个新指令,它的作用,就是将指定消息ID的聊天消息变为“谁谁谁已撤回一条消息!”。

此指令涉及的数据变更范围就是:
1)数据库里的离线消息(如果没有离线消息,此步就不需要做);
2)服务端的聊天记录(如果你的服务端有存聊天记录,此就就需要做,不存就不需要做);
3)对方已收到的消息(在撤回前不管这条消息是通过离线收到还是实时收到的,不需要区分,反正就是要把用户看到的变成“谁谁谁已撤回一条消息!”就行)。

所以,基于上述思路,希望你大本质上来思考,这样就能减少很多复杂性,不然情况太多了,而且有些情况你也并不一定考虑完全了。总之,你针对结果来构思就是了。

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

返回顶部