在我们日常使用微信聊天的过程中,有时候一不小心发错了消息,特别是在像公司群这种比较正式的群里面,影响还是有点不好。此时肯定是想要撤回消息的,幸好在微信v5.3.1版本之后提供了这样的一个功能,解决了用户这种情况下的痛点。那么微信是如何实现的呢?
假设现在有两个微信用户,简称为A和B,微信的服务器简称为Server,下面简单的说下这个流程:
-
A和B打开微信App,连接到Server。
-
A发送包含消息的指令到Server,告诉Server这条消息是要发送给B的。
-
Server收到指令后,拿到消息,将消息发送给B。
-
B收到指令,显示收到的消息。
-
A发现消息不对,执行撤回动作,于是向Server发出撤回消息的指令。
-
Server收到指令,向B发出撤回消息的指令。
-
B收到指令,隐藏收到的消息。
以上就是微信消息撤回功能的一个简单流程,这里要说明的是微信app和Server之间是保持着“长连接”的,这样Server就可以主动的推送数据到客户端,所以当A执行撤回动作之后,B几乎可以立刻收到指令,隐藏消息。还有一点就是微信的每条消息都是有一个唯一的ID(相当于我们每个人的身份证),这样才能精确的定位到要撤回的是哪一条消息。
当然具体的技术实现细节肯定还是比较复杂的,这里只是简单的说下流程,让大家有个了解,如有错误的地方,还请大家多多指教。,