【发布时间】:2016-10-14 12:29:09
【问题描述】:
This question 询问当移动设备没有稳定连接时丢失 XMPP 消息该怎么办,但我真的不明白为什么包首先会丢失。
我记得曾经读过服务器和客户端之间的流在连接突然丢失时保持打开状态,并且只有在连接超时时才会被破坏。这意味着服务器通过流发送到达的消息,即使断开连接的客户端无法再接收这些消息。
一段时间以来,我对这个解释感到满意,但开始想知道为什么核心 XMPP 会缺少如此重要的功能。最终我注意到确保 XMPP 协议中的正确传输是多余的,因为底层 TCP 应该已经确保消息的正确传输,但是由于丢失消息引起的各种问题,这似乎不是真的。
为什么 TCP 不足以确保消息正确发送或正确失败,以便服务器知道它必须稍后发送消息?
【问题讨论】: