QQ、微信的消息撤回机制是怎样的?

QQ、微信的消息撤回机制是怎样的?

拿两个手机测了一下:

1)A手机断网,B手机发给A,并撤回。A联网后,收到B撤回消息的提醒。

2)A手机发给B手机,断网,点击撤回,在A手机处显示loading,最终提示撤回不成功。

3)A手机正常联网,B用mac版登录,A发给B并撤回,A手机显示撤回成功,B电脑正常显示消息,并无撤回提醒。

所以大胆猜测微信撤回机制应该是这样的:

1)每条消息都有消息ID和状态,状态有正常、撤回、删除等等;

2)A发消息给B,服务端即时把该条消息给B,A在2分钟内点击撤回,A客户端告知服务端,服务端通知AB客户端撤回成功,AB两边的客户端把该条消息在UI展示上进行更改;

3)该条已撤回的消息只是逻辑删没有物理删,仍然保存在服务端。

如何看到已被撤回的消息?(已根据评论区进行补充~)

1)安卓手机可以安装Xposed框架,苹果手机用flex,评论区还有说黑莓手机和老人机也不支持撤回的..........你赢了→_→ 其实都是因为这些手机的微信版本没更新导致的~

2)使用旧版本或国际版本或轻聊版本或HD版本的微信QQ 可看到对方已撤回的消息,DZ用mac版微信v1.0.0.6就可以看到~

3)在微信设置「通知显示消息内容」,在手机设置 开启微信QQ通知并允许显示在通知中心!设置成功后,即使对方撤回,你依然可以在手机下拉的通知中心中看到对方已撤回的消息内容!DZ是iphone 微信版本6.3.22,已验证可以在通知中心看到,但无法看到已撤回的图片~

补充:群消息设置消息免打扰啊喂…否则你通知中心要炸了!

补充2:部分安卓机会把微信通知合并,就无法在通知中心看到了~

作为没有技术背景的产品狗,还这么认真!还不给我点个赞!๑乛◡乛๑

-----------------------

作为一个知乎的小透明,这篇花了1h不到的回答居然获最高票,有点受宠若惊!

而这篇辣么用心写的回答:

居然都没人看.....

你为什么想打产品!因为泥们没碰上我这么认真靠谱又可爱的产品狗啊!

捂脸

逃