当我使用XMPP连接到Firebase Cloud Messaging时,连接通常会在大约10分钟后断开连接。我发现我必须每隔几分钟向FCM发送一条上游消息,以确保连接不会断开。这是预期的吗?
答案 0 :(得分:1)
是的,根据XMPP协议link to XMPP documentation
的文档,这是正常行为当作为流的一方的实体尚未收到任何XMPP时 来自其流对等体的流量可能会持续一段时间 似乎是沉默的。导致这种情况发生的原因有几个:
- 底层的TCP连接已经死了。
- 尽管存在底层TCP,XML流仍然被破坏 连接还活着。
- 对等体处于空闲状态,并且根本没有向其发送任何XMPP流量 实体的XML流。
醇>
解决此问题的传统方法是定期在XML流上发送所谓的“空白ping”