《webim如何保证消息的可靠投递》

上一章和大家分享了webim消息的实时性问题(回复【轮询】阅读《webim如何用轮询保证消息绝对实时》)。

消息的可靠性,即消息的不丢失和不重复,也是im系统中的一个难点。当初qq在技术上(当时叫oicq)因为以下两点原因才打败了icq:
1)qq的消息投递可靠(消息不丢失,不重复)
2)qq的垃圾消息少(它antispam做得好,这也是一个难点,但不是本文重点讨论的内容)
今天,本文将用十分通俗的语言,来讲述webim系统中消息可靠性的问题。

一、报文类型

im的客户端与服务器通过发送报文(也就是网络包)来完成消息的传递,报文分为三种

请求报文(request,后简称为为R)

应答报文(acknowledge,后简称为A)

通知报文(notify,后简称为N),这三种报文的解释如下:
image.png

R:客户端主动发送给服务器的

收藏 打印