在我们日常使用微信聊天的过程中,有时候一不小心发错了消息,特别是在像公司群这种比较正式的群里面,影响还是有点不好。此时肯定是想要撤回消息的,幸好在微信v5.3.1版本之后提供了这样的一个功能,解决了用户这种情况下的痛点。那么微信是如何实现的呢?

假设现在有两个微信用户,简称为A和B,微信的服务器简称为Server,下面简单的说下这个流程:

微信消息撤回时间已过怎么撤回?微信是如何实现消息撤回的(1)

  1. A和B打开微信App,连接到Server。

  2. A发送包含消息的指令到Server,告诉Server这条消息是要发送给B的。

  3. Server收到指令后,拿到消息,将消息发送给B。

  4. B收到指令,显示收到的消息。

  5. A发现消息不对,执行撤回动作,于是向Server发出撤回消息的指令。

  6. Server收到指令,向B发出撤回消息的指令。

  7. B收到指令,隐藏收到的消息。

以上就是微信消息撤回功能的一个简单流程,这里要说明的是微信app和Server之间是保持着“长连接”的,这样Server就可以主动的推送数据到客户端,所以当A执行撤回动作之后,B几乎可以立刻收到指令,隐藏消息。还有一点就是微信的每条消息都是有一个唯一的ID(相当于我们每个人的身份证),这样才能精确的定位到要撤回的是哪一条消息。

微信消息撤回时间已过怎么撤回?微信是如何实现消息撤回的(2)

当然具体的技术实现细节肯定还是比较复杂的,这里只是简单的说下流程,让大家有个了解,如有错误的地方,还请大家多多指教。

,