Java GAE:MQTT代理

Java GAE:MQTT代理,java,google-app-engine,mqtt,iot,moquette,Java,Google App Engine,Mqtt,Iot,Moquette,所以我想知道是否有可能在GoogleAppEngine平台上运行MQTT代理? 找不到关于它的任何信息(或者我可能使用了错误的关键字) 我已经在Java上运行了我的GAE,所以我想进入使用后端在GAE上运行MQTT代理的方向 编辑: 做了进一步的研究,Moquette似乎正在Java上运行。有人有在GAE上运行Moquette的经验吗 EDIT2: 好的,Moquette的示例似乎是使用OSGi容器运行的,这在GAE中是不可用的。正在寻找在GAE上启动此服务器的脚本。MQTT是TCP之上的协议。

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

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

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

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

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

注意:GAE后端已被替换:自动缩放(又名前端)实例和手动缩放(又名后端)实例


回到您的问题:拥有GAE(访问服务)的大部分好处,但运行一个完整的JVM,它允许侦听套接字

代理也是Moquette的替代品,它也可以在Java上运行,并且可以轻松安装。所有的文档都是可用的。 我们还没有在GAE上测试它,但是如果您在运行它时遇到任何问题,您可以在支持论坛上询问

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

充分披露:我为开发HiveMQ的公司工作

干杯


克里斯汀

@Peter Knego肯定是对的,我想补充他的答案是

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

然后,您将能够完美地运行MQTT brooker

只要定义防火墙,允许在代理侦听的端口上进行tcp连接


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

可能的解决方案是:在单独的服务器上运行代理,并在我的GAE应用程序中将MQTT客户端定义为后端,然后将数据转发到我的数据存储中?这个客户端不需要侦听套接字,这是对的吗?如果GAE是一个MQTT客户端,它只发送通知,那么这可能会起作用。有点离题,但可以只在后端运行MQTT客户端(现在是服务吗?)。这是为了听一个公开的经纪人讲话。谢谢你的提醒!我还在比较不同的选择:)