连接测试前准备

声明

- 本文测试所用设备系统为MacOS- 模拟MQTT client行为的客户端为MQTTBOX- 本文所用镜像为依赖OpenEdge源码自行编译所得,具体请查看如何从源码构建镜像

OpenEdge Hub模块的完整的配置参考Hub模块配置

提示:要求部署、启动OpenEdge的设备系统已安装好Docker,详见在MacOS系统上快速部署OpenEdge

操作流程

  • Step1:依据使用需求编写配置文件信息,然后以Docker容器模式启动OpenEdge可执行程序;
  • Step2:依据选定的连接测试方式,对MQTTBOX作相应配置;
    • 若采用TCP连接,则仅需配置用户名、密码(参见配置文件principals配置项username、password),并选定对应连接端口即可;
    • 若采用SSL证书认证,除选定所需的用户名、密码外,还需选定ca证书或是由ca签发的服务端公钥证书,依据对应的连接端口连接即可;
    • 若采用WS连接,与TCP连接配置一样,仅需更改连接端口即可;
    • 若采用WSS连接,与SSL连接配置一样,仅需更改连接端口即可。
  • Step3:若上述步骤一切正常,操作无误,即可通过OpenEdge日志或MQTTBOX查看连接状态。
    提示:配置文件principals配置项中password要求采用原password明文SHA256值存储,但MQTTBOX作连接配置时,要求使用原password明文。

连接测试

如上所述,进行设备连接OpenEdge测试前,须提前启动OpenEdge。

OpenEdge 启动

依据Step1,以Docker容器模式启动OpenEdge,正常启动的情况如下图所示。

OpenEdge启动

可以看到,OpenEdge正常启动后,OpenEdge_Hub模块镜像已被加载。另外,亦可以通过命令docker ps查看系统当前正在运行的容器。

查看系统当前正在运行的容器

MQTTBOX 连接测试

OpenEdge Hub模块启动的连接相关配置信息如下:

  1. name: localhub
  2. listen:
  3. - tcp://:1883
  4. - ssl://:1884
  5. - ws://:8080/mqtt
  6. - wss://:8884/mqtt
  7. certificate:
  8. ca: 'var/db/openedge/module/localhub/cert-4j5vze02r/ca.pem'
  9. cert: 'var/db/openedge/module/localhub/cert-4j5vze02r/server.pem'
  10. key: 'var/db/openedge/module/localhub/cert-4j5vze02r/server.key'
  11. principals:
  12. - username: 'test'
  13. password: 'be178c0543eb17f5f3043021c9e5fcf30285e557a4fc309cce97ff9ca6182912'
  14. permissions:
  15. - action: 'pub'
  16. permit: ['#']
  17. - action: 'sub'
  18. permit: ['#']

如上所述,OpenEdge Hub模块启动时会同时开启1883、1884、8080及8884端口,分别用作TCP、SSL、WS(Websocket)及WSS(Websocket + SSL)等几种方式进行连接,下文将以MQTTBOX作为MQTT Client,测试MQTTBOX分别在上述这几种连接方式情况下与OpenEdge的连接情况,具体如下。

TCP 连接测试

启动MQTTBOX客户端,直接进入client创建页面,开始创建MQTT client,选择连接使用的协议为“mqtt/tcp”,依据OpenEdge Hub模块启动的地址及端口,再结合principals配置项中可连接OpenEdge Hub模块的MQTT client的连接配置信息进行配置,然后点击“Save”按钮,即可完成TCP连接模式下MQTTBOX的连接配置,具体如下图示。

TCP连接测试配置

在点击“Save”按钮后,MQTTBOX会自动跳转到连接状态页面,若连接配置信息与OpenEdge Hub模块principals配置项中可允许连接的MQTT client信息吻合,即可看到连接成功的标志,具体如下图示。

TCP连接成功

SSL 连接测试

与TCP连接配置类似,对于SSL连接的测试,MQTTBOX连接配置协议选择“mqtts/tls”,相应地,端口选择1884,SSL/TLS协议版本选择“TLSv1.2”,证书选择“CA signed server certificates”,并输入对应的连接用户名和密码,然后点击“Save”按钮,具体配置如下图示。

SSL连接测试配置

若上述操作无误,配置信息与OpenEdge Hub模块principals配置项中可允许连接的MQTT client信息吻合,即可在MQTTBOX页面看到“连接成功”的标志,具体如下图示。

SSL连接成功

WS(Websocket)连接测试

同TCP连接配置,这里仅须更改连接协议为“ws”,端口选择8080,其他与TCP连接配置相同,然后点击“Save”按钮,具体如下图示。

WS(Websocket)连接测试配置

只要上述操作正确、无误,即可在MQTTBOX看到与OpenEdge Hub成功建立连接的标志,具体如下图示。

WS(Websocket)连接成功

WSS(Websocket + SSL)连接测试

与SSL连接配置类似,这里只需要更改连接协议为“wss”,同时连接端口采用8884,点击“Save”按钮,具体如下图示。

WSS(Websocket + SSL)连接测试配置

正常情况下,即可通过MQTTBOX看到其已通过“wss://127.0.0.1:8884”地址与OpenEdge Hub模块成功建立了连接,具体如下图示。

WSS(Websocket + SSL)连接成功

综上,我们通过MQTTBOX顺利完成了与OpenEdge Hub模块的连接测试,除MQTTBOX之外,我们还可以通过MQTT.fx或Paho MQTT自己编写测试脚本测试与OpenEdge Hub 的连接,具体参见相关下载

最后更新于 2018-12-28 10:23:09

原文: https://openedge.tech/docs/tutorials/local/Device-connect-with-OpenEdge-base-on-hub-module