是否可以将 GCM 云连接服务器 (XMPP) 与 Heroku 应用程序一起使用?

Posted

技术标签:

【中文标题】是否可以将 GCM 云连接服务器 (XMPP) 与 Heroku 应用程序一起使用?【英文标题】:Is it possible to use GCM Cloud Connection Server (XMPP) with a Heroku app? 【发布时间】:2014-07-31 16:50:46 【问题描述】:

我们正在为 android 开发一个聊天应用程序,我们的服务器是在 Heroku 上的 Django 中实现的。我们现在必须在 GCM 为您提供的两种可能的连接服务器之间进行选择:HTTP 或 CCS (XMPP)。我们想知道是否可以将 Heroku 与第二选择一起使用。

https://developer.android.com/google/gcm/ccs.html

提前致谢。

【问题讨论】:

【参考方案1】:

从我目前所读到的关于 GCM 的内容来看,是的,这很有可能。 Google 服务器负责与您用户设备上运行的 android 应用程序通信,因此没有问题。

heroku 托管的 GCM XMPP 服务器负责与 google 服务器通信。入站连接仅限于 Heroku 上的端口 80 和 443,因此只要您只需要从 Heroku 托管的 python 应用程序启动并将出站连接到 Google 服务器,就可以了。

来自 Heroku 文档..

入站请求由提供 HTTP 和 SSL 终止。从这里它们被直接传递给一组 路由器。

路由器负责确定您的位置 应用程序的 web dynos 并将 HTTP 请求转发到其中之一 这些测功机。

如果您愿意证明,我很乐意为您设置测试环境。

您还可以运行 bash 提示符来测试 heroku 上的内容。只需在提示符下运行 :/repofolder$ heroku run bash

这是通过端口 5235 连接到 gcm 的 heroku bash 的屏幕截图

【讨论】:

看起来不错!如果您设置了这个测试环境,那么我们可以 100% 确定我在 Heroku 上的 Django 应用程序可以与 GCM 一起使用,您有我的 300 分 :) 了解我们需要使用 XMPP 协议与 GCM 通信的那种实现是否可以用 Django 实现也是非常重要的。似乎它需要一个一直运行的进程,我不确定 Django 是否可以这样工作。 可以。我已经阅读了 gcm 的文档,它对 Django 非常友好。 django 还具有您可以创建的命令行管理操作。您可以使用 cron 或持续运行它们。 有很多关于如何将 django 与 gcm 一起使用的文档,请查看此 repo 上的源代码,了解如何在您的特定应用程序中实现它。 github.com/bogdal/django-gcm 不确定您的应用程序如何工作,但您可以让 heroku 工作进程 dyno 从 bash 运行管理员操作或任何您喜欢的命令。然后你也可以有一个 web dyno,它可能是你的 django 项目的 web 前端。

以上是关于是否可以将 GCM 云连接服务器 (XMPP) 与 Heroku 应用程序一起使用?的主要内容,如果未能解决你的问题,请参考以下文章

是否可以使用 gcm css 以现有 xmpp 用户登录?

Android- Open Fire、云连接服务器和 GCM 之间的区别

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

使用 XMPP 关闭 GCM 连接服务器的套接字

GCM 云连接服务器中上游消息的主要用途是啥?

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