如何在openshift在线运行mosquitto mqtt broker

时间:2016-05-23 06:05:40

标签: websocket openshift mqtt mosquitto

是否有人在mosquitto成功投放了openshift online version in a free account

有两个相关问题,但并未真正解决所有问题:

到目前为止已经完成的东西:

  • 我已经运行了一个python websocket服务器,因此经过验证的openshift确实支持websocket很好地通过DIY盒式磁带。
  • 我还编译了mosquitto并使用a sample off github在本地运行。

将mosquitto放在openhift上的确切步骤是什么?

2 个答案:

答案 0 :(得分:1)

最后我将它用于openshift,尽管配置最简单。以下是关键步骤:

  • 使用openshift DIY盒式磁带获取websocket支持,该支持公开外部端口8000,并在8080指定的虚拟IP地址上路由到内部端口OPENSHIFT_DIY_IP
  • config.mk中关闭所有以下功能以编译mosquitto,以避免在openshift中安装大量软件包:WITH_TLSWITH_TLS_PSKWITH_THREADING,{{1} },WITH_BRIDGEWITH_SRVWITH_UUIDWITH_DOCS
  • 修改mosquitto的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.0libwebsockets个软件包。
  • 运行libwebsockets-devel以构建mosquitto。
  • 让我们假设您要将mosquitto安装到make目录。创建目录。运行../mosrun
  • 删除make prefix= DESTDIR=$(pwd)/../mosrun install../mosrun以外的所有文件夹。 sbincd ../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服务器的地方。
  • 创建一个mosquitto配置文件mosrun/sbin/simpleweb/config.js,其中包含四行:mosrun/sbin/mosquitto.conflistener 8080 <OPENSHIFT_DIY_IP>protocol websocketshttp_dir simpleweb。使用您的实际DIY虚拟IP地址代替connection_messages
  • 将整棵树复制到您的openshift DIY装备。
  • 使用浏览器从浏览器浏览到DIY域,这样您就可以看到默认的服务器页面。
  • 修改openshift <OPENSHIFT_DIY_OP>.openshift/action_hooks/start脚本以注释掉现有命令。推送到openshift。现在您应该无法连接到默认服务器但齿轮正在运行。
  • 进入mosquitto .../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.htmlconfig.js

Tow posts非常有助于指导您完成构建mosquitto的步骤:the blog by jpmanthe blog by Jeremy Gooch

答案 1 :(得分:1)

以防其他任何人碰到这篇文章;我在OpenShift v3.11上运行了一个非websocket Mosquitto:https://github.com/john2exonets/OpenShift-MQTT-Mosquitto