默认
打赏 发表评论 6
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
引用: 消息发送第二阶段,服务端推送消息到接收方,如果连接断开,会丢失消息。


这里与下文的表述似乎有点衔接不上,作者的原意应该是想说:
当接收方在线时,直接通过长连接推送消息;当接收方离线时,将消息暂存到离线消息数据库。

之后才是说连接重新建立后,拉取离线时间段内的所有消息。

不过这里确实会有问题,假如明明已经判断接收方在线了,在通过长连接推送消息时长连接却意外断开了,就有可能丢失消息。所以服务端同样也需要有重发机制,在保证收到接收方的ACK后才删除消息,假如一段时间内没有收到ACK,则需要重发。
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部