是否有人在mosquitto成功投放了openshift online version in a free account?
有两个相关问题,但并未真正解决所有问题:
到目前为止已经完成的东西:
将mosquitto放在openhift上的确切步骤是什么?
答案 0 :(得分:1)
最后我将它用于openshift,尽管配置最简单。以下是关键步骤:
DIY
盒式磁带获取websocket支持,该支持公开外部端口8000
,并在8080
指定的虚拟IP地址上路由到内部端口OPENSHIFT_DIY_IP
config.mk
中关闭所有以下功能以编译mosquitto,以避免在openshift中安装大量软件包:WITH_TLS
,WITH_TLS_PSK
,WITH_THREADING
,{{1} },WITH_BRIDGE
,WITH_SRV
,WITH_UUID
,WITH_DOCS
。 WITH_SOCKS
,以便从Makefile
注释掉要安装的命令。这似乎是mosquitto中的一个小错误,因为如果DOCSDIR
被关闭,它不应该尝试从WITH_DOCS
安装。 DOCSDIR
中的WITH_WEBSOCKETS
。 config.mk
。在约为第625行的函数src/webockets.c
中,在mosq_websockets_init()
行下方添加一行info.iface = listener->host;
。这是为了使mosquitto能够绑定到openshift DIY设备中的虚拟IP地址。默认情况下,mosquitto只允许您绑定到info.user = user;
以获取任何IP地址。这似乎是mosquitto和libwebosockets之间的断开。 0.0.0.0
和libwebsockets
个软件包。 libwebsockets-devel
以构建mosquitto。 make
目录。创建目录。运行../mosrun
。 make prefix= DESTDIR=$(pwd)/../mosrun install
下../mosrun
以外的所有文件夹。 sbin
和cd ../mosrun/sbin
。调整库存libwebsockets lib的源路径。 cp /usr/lib/libwebsockets.so.7 .
中的所有文件。将它们放入https://github.com/jpmens/simple-mqtt-websocket-example
目录。 mosrun/sbin/simpleweb
以使用您的openshift DIY域名和端口8000.这是javascript从浏览器连接到您的DIY服务器的地方。 mosrun/sbin/simpleweb/config.js
,其中包含四行:mosrun/sbin/mosquitto.conf
,listener 8080 <OPENSHIFT_DIY_IP>
,protocol websockets
和http_dir simpleweb
。使用您的实际DIY虚拟IP地址代替connection_messages
。 <OPENSHIFT_DIY_OP>
和.openshift/action_hooks/start
脚本以注释掉现有命令。推送到openshift。现在您应该无法连接到默认服务器但齿轮正在运行。 .../stop
目录。 mosrun/sbin
启动mosquitto。 LD_LIBRARY_PATH=. ./mosquitto -c mosquitto.conf -v
。您将看到从jpmen&#39; github repo复制的mqtt websockets测试页面。 下一步是将树移动到DIY git树中。修改启动和停止挂钩以启动和停止mosquitto而不是默认服务器。还有一个在openshift上运行的脚本,用于从实际的openshift环境变量创建diy-yourdomain.rhcloud.com:8000/index.html
和config.js
。
Tow posts非常有助于指导您完成构建mosquitto的步骤:the blog by jpman和the blog by Jeremy Gooch。
答案 1 :(得分:1)
以防其他任何人碰到这篇文章;我在OpenShift v3.11上运行了一个非websocket Mosquitto:https://github.com/john2exonets/OpenShift-MQTT-Mosquitto