1

所以我想知道是否可以在 Google App Engine 平台上运行 MQTT 代理?找不到任何有关它的信息(或者我可能使用了错误的关键字)。

我已经让我的 GAE 在 Java 上运行,所以我想进入使用后端在 GAE 上运行 MQTT 代理的方向。

编辑: 做了一些进一步的研究,似乎 Moquette 正在 Java 上运行。有人有在 GAE 上运行 Moquette 的经验吗?

EDIT2: 好的,似乎 Moquette 的示例正在使用 OSGi 容器运行,这在 GAE 中不可用。正在寻找在 GAE 上启动此服务器的脚本。

4

3 回答 3

1

Moquette 的替代方案也是HiveMQ代理,它也运行在 Java 上并且可以轻松安装。所有文档都可在此处获得。我们尚未在 GAE 上对其进行测试,但如果您在运行它时遇到任何问题,您可以在支持论坛中提问。

更新:如果 Peter Knego 是正确的,那么 HiveMQ 或任何其他 MQTT 代理将无法在 GAE 上运行。

完全披露:我正在为开发 HiveMQ 的公司工作。

干杯,

基督教

于 2015-01-21T08:53:29.843 回答
1

MQTT 是 TCP 之上的协议。为了运行 MQTT 服务器,需要能够打开一个监听套接字。普通 AppEngine 实例仍然不支持这些。

注意:GAE 后端已被替换:现在您只有自动缩放(又名前端)实例和手动缩放(又名后端)实例。

回到你的问题:托管 VM具有 GAE(访问服务)的大部分优点,但运行一个完整的 JVM,它允许侦听套接字。

于 2015-01-20T20:47:15.003 回答
1

@Peter Knego 绝对是对的,我要补充他的答案是,

如果您设法将应用程序配置为在 Appengine 和 Compute Engine 的托管 Vms 上使用自定义运行时,

那么您将能够完美运行您的 MQTT broker。

只要您定义防火墙以允许代理正在侦听的端口上的 tcp 连接。

默认情况下,出于安全原因,端口被阻止。

于 2015-11-19T09:44:30.767 回答