使用 HTTP 和 XMPP 协议的 GCM/FCM 推送通知

Posted

技术标签:

【中文标题】使用 HTTP 和 XMPP 协议的 GCM/FCM 推送通知【英文标题】:GCM/FCM push notification using both HTTP and XMPP protocol 【发布时间】:2016-07-08 19:13:58 【问题描述】:

我对 android 推送通知的理解是操作系统与 FCM 连接服务器保持一个活动连接。这是我的应用服务器只支持 HTTP 协议时的假设。

现在,我的应用程序也有自己的 XMPP 连接,用于即时消息传递、状态等...通常的 XMPP 内容。我正在考虑用推送通知 XMPP 连接替换此 XMPP 连接,而那时我感到困惑。

如果我同时使用 HTTP 和 XMPP 协议进行推送通知,那么不会有两个活动连接(一个到 FCM 连接服务器,另一个到云连接服务器)?如果有两个活动连接,那么使用这两种协议进行推送通知与仅使用 HTTP 推送协议并保留我自己已有的 XMPP 连接有什么好处?

【问题讨论】:

【参考方案1】:

Android 设备将使用相同的连接来接收通过 HTTP 或 XMPP 发送的消息。与 CCS 服务器的连接是通过您的应用服务器而不是设备。

【讨论】:

从我在文档中阅读的内容来看,似乎有两个联系。另外,这两个协议不是在两个不同的端口上吗?那不是说有两个连接吗? 需要注意的是XMPP连接不是与设备建立的。该设备仅连接到 FCM,因此只有一个连接。 XMPP 连接在您的服务器和 CCS(FCM 的一部分)之间 上游是否也使用相同的连接? 是的,它是相同的连接,这就是为什么它更好地使用电池。

以上是关于使用 HTTP 和 XMPP 协议的 GCM/FCM 推送通知的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP,Http,Socket,XMPP的区别

转:XMPP协议MQTT协议HTTP协议CoAP协议的基本比较

XMPP协议

如何在 Lynx 等 webbrowser 或 python webbrowser 上添加 xmpp 或矩阵协议?

(转)OpenFire源码学习之一:XMPP基础知识

在一个应用程序中同时使用 Gdata 和 Xmpp 协议