多个 XMPP 服务器处理上游 GCM 消息

Posted

技术标签:

【中文标题】多个 XMPP 服务器处理上游 GCM 消息【英文标题】:Multiple XMPP servers to handle upstream GCM messages 【发布时间】:2016-12-13 12:18:29 【问题描述】:

我想让多个 XMPP 服务器监听上游 GCM 消息以实现负载平衡和容错。如果我将两台服务器连接到同一个发件人 ID,Google 会自动在它们之间拆分邮件吗?

【问题讨论】:

为什么投反对票? 【参考方案1】:

Implementing an XMPP Connection Server 中指出,CCS 需要定期关闭连接以执行负载平衡以控制消息。

在关闭连接之前,CCS 会发送一个 CONNECTION_DRAINING 消息,表示连接正在耗尽,即将关闭。 “排水”是指关闭进入连接的消息流,但允许管道中已经存在的任何内容继续。当您收到 CONNECTION_DRAINING 消息时,您应该立即开始向另一个 CCS 连接发送消息,并在必要时打开一个新连接。但是,您应该保持原始连接打开并继续接收可能通过连接发送的消息(并确认它们)—CCS 会在连接准备好时处理启动连接。

我可能错了,但我的理解是,由于只有一个活动连接,因此没有完成消息拆分。一旦 CCS 发送连接将关闭的消息,就开始向另一台服务器发送消息。

【讨论】:

Firebase 文档显示“对于每个发件人 ID,FCM 允许并行连接 1000 个。”这些仅用于发送下游消息吗?

以上是关于多个 XMPP 服务器处理上游 GCM 消息的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 Node.js + XMPP 接收上游 GCM 消息

如果 GCM 不支持 HTTP 服务器的上游消息传递,那么关于 HTTP 服务器的用户通知的上游消息如何支持?

识别上游 GCM 消息的发送者

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

GCM 中使用上游消息传递的消息流程图

一个 XMPP 连接用于多个 GCM/FCM 应用程序