XMPP 与 Firebase 云消息传递的连接断开

Posted

技术标签:

【中文标题】XMPP 与 Firebase 云消息传递的连接断开【英文标题】:XMPP Connection to Firebase Cloud Messaging Disconnects 【发布时间】:2016-11-04 04:43:59 【问题描述】:

当我使用 XMPP 连接到 Firebase Cloud Messaging 时,连接通常会在大约 10 分钟后断开。我发现我必须每隔几分钟向 FCM 发送一条上游消息,以确保连接不会断开。这是预期的吗?

【问题讨论】:

我认为 Firebase documentation 的这一部分可以帮助您了解 XMPP 连接。此外,SO question 解释说,如果您使用 XMPP,则需要上游消息。欲了解更多信息,请查看此link。 不完全确定,但也许您遇到了 控制消息 下 docs 中提到的内容:Periodically, CCS needs to close down a connection to perform load balancing. 【参考方案1】:

是的,根据 XMPP 协议link to XMPP documentation 的文档,这是正常行为

当作为流参与方的实体未收到任何 XMPP 在一段时间内来自其流对等体的流量,对等体可能 似乎沉默了。发生这种情况的原因有多种:

    底层 TCP 连接已失效。 XML 流被破坏,尽管底层 TCP 连接有效。 对等方处于空闲状态,根本没有通过其发送任何 XMPP 流量 XML 流到实体。

解决此问题的传统方法是定期通过 XML 流发送所谓的“空白 ping”

【讨论】:

以上是关于XMPP 与 Firebase 云消息传递的连接断开的主要内容,如果未能解决你的问题,请参考以下文章

XMPP 服务器。如何打开 TLS 连接?

我们能否仅借助 FCM 而无需 Xmpp 来演示上游消息传递? [关闭]

在 Firebase Cloud Messaging 上通过 XMPP 传递上游消息的误解

Firebase 上游云消息

Firebase 与 Android Java 中的 Google 云消息传递

java - 使用 smack4.2 firebase xmpp 发送消息错误