多情剑客无情剑 发表于 2018-4-30 11:43:52

微信撤回消息的技术原理是怎么实现的?为什么撤回消息要有提示?


人有失口,马有失蹄,QQ和微信撤回消息的功能在日常生活中的作用很大,为什么消息已经发出来了还可以撤回,实现这个功能的技术原理是什么呢?另外,很多朋友会觉得撤回消息会有“XX撤回了一条消息”这个提示是一件很尴尬的事,觉得对方会纠结我们撤回了什么消息,如果取消撤回消息的提示,那么会不会有更好的产品体验呢?
https://p0.ssl.qhimgs4.com/t01eea98e009ea7097a.webp
一、微信是如何做到消息撤回的
根据微信介绍称,“MobileA发送消息时,会在自己的微信客户端上生成全球唯一的UniqueMsgID,并将该UniqueMsgID附带在即将发送的消息体中。”而当消息撤回时,“MobleA知道自己已经发送的每一条消息体的UniqueMsgID,需要撤回哪一条,则将那一条消息的UniqueMsgID附带在撤回命令中。MoblieB收到撤回命令时,根据撤回命令中的UniqueMsgID,在自己的数据库中,寻找对应的消息体,然后予以撤回效果展示。”也就是说,在这个过程中,记录每条消息唯一性的UniqueMsgID起到了非常重要的作用,每一条消息都有一个对应的UniqueMsgID编号,就好像每个人都会有自己的身份证号码一样是唯一的,在长按某条消息,执行撤回消息的命令时,微信会根据UniqueMsgID在数据库中寻找到对应的消息,然后予以撤回的效果展示出来。
二、为什么微信撤回消息要提示“XX撤回了一条消息”
1、日常场景
为了更好的帮助大家理解,由此我们做了一个场景假设
这是目前有撤回消息提示的场景
https://p0.ssl.qhimgs4.com/t0133aee4b6e7180763.webp
原消息记录
https://p0.ssl.qhimgs4.com/t0106ebf476fbf67f31.webp
有撤回提示的情况
这是假设没有撤回消息提示的场景
https://p0.ssl.qhimgs4.com/t0133aee4b6e7180763.webp
原消息记录
https://p0.ssl.qhimgs4.com/t010f42784e51f75f4c.webp
假设没有撤回提示的情况(截图经过PS处理模拟的场景)
通过两个场景模拟可知,如果没有撤回消息提示,在日常的学习和工作中,甚至的涉及钱财方面,就很容易引起误会。有了这个撤回消息功能并且适当的提示消息,在保证消息发送人的消息自主权的同时也一定程度的保证了消息接收人的知情权。
2、产品体验
注重消息反馈的体验。
我们在日常使用各种产品的时候,每一个操作会有一个相应的消息反馈,比如登录某个账号的时候,输入账号密码的时候会有光标移动的反馈,登录失败会有“账号/密码错误”的消息反馈等等情况。
那么如果微信撤回消息没有撤回提示会有怎样的体验发生呢?
很多朋友在使用微信的时候,都开启了接收消息提示。假设我们消息接收人,当我们的手机处于锁屏的状态,接收到消息会在锁屏界面出现提示,当我们看到锁屏界面显示的“收到一条微信消息”后打开微信,如果在我们打开微信之前对方就撤回了条消息,而我们这时候打开微信就看不到这条消息了,又没有什么提示,会不会让人觉得是微信这个APP出问题了呢?那么如果遇到一些经常爱撤回消息的好友,那么微信的产品体验还会好吗?另外在聊天的时候,眨了一下眼看到对方已发过来的消息就突然消失了却没有任何征兆或者提示,好诡异会不会?
综上所述,在保证了撤回功能的前提下,选择了撤回消息要提示“XX撤回了一条消息”,避免了可能会出现的聊天记录误会,同时也一定程度上保证了用户的使用体验。
当然,也有一些朋友会觉得本来需要撤回的消息就失去了其本身的作用,微信在撤回消息的同时还要提醒对方“XX撤回了一条消息”,将撤回无作用消息的事情发出了提示,这会对双方造成一些困扰,也会让双方陷入一种尴尬的场面。
个人见解,还望指正。关于为什么微信撤回消息要提示“XX撤回了一条消息”,这个问题欢迎大家发表自己的见解。你还希望微信增加一些什么实用的功能呢?欢迎大家在评论区进行讨论。

页: [1]
查看完整版本: 微信撤回消息的技术原理是怎么实现的?为什么撤回消息要有提示?

请大家牢记南瓜园网址 www.nan2008.com