步骤五:通过 MQTT.fx 客户端测试连接

配置 MQTT 的应用客户端,可以快速验证是否可以实现与物接入服务交流发送或者接收消息。

前提条件

登录MQTT.fx官网,找到适合的版本下载并安装MQTT.fx客户端。

注意: MQTT.fx 1.7.0版本对带有 $ 的 主题(Topic)处理存在 bug,请避免使用此版本进行测试。点击查看MQTT.fx 官方 issue

操作步骤

  1. 打开MQTT客户端的设置页面,点击“+”按键,创建一个新的配置文件。

  • 填写Connection profile相关信息:

    参数名称 说明
    profile name 配置文件名称,可随意填写
    Broker Address 创建项目后返回的hostname
    Broker Port 1884
    Client ID 客户端ID,支持“a-z”,“0-9”,“_”,“-”字符,
    且不能大于128bytes,UTF8编码
  • 选择User Credential,输入创建 IoT Hub 服务返回的 username/password,参考配置项目

  • 配置SSL/TLS安全认证,勾选 Enable SSL/TLS,选择CA signed server certificate认证。

    点击“Apply”按键,完成客户端配置。

  1. 返回MQTT客户端界面,选择新创建的配置文件,点击“connect”按键连接服务。

    连接成功时,控制台物影子页面的在线状态指示灯也会亮起。物影子在线状态,需 clientID 与物影子名称一致,且使用物影子指定的用户名、密码进行连接。

  2. 成功连接后,即可开始订阅消息。

    打开Subscribe标签,填写主题topic,例如$baidu/iot/shadow/myMonitor/update/accepted$baidu/iot/shadow/myMonitor/update/rejected,分别被用作 update 被接受和拒绝时返回信息,选择默认的QoS 0,点击“Subscribe”进行订阅操作。

  3. 发布消息。

    打开Publish标签,填写主题topic,例如$baidu/iot/shadow/myMonitor/update,选择默认的QoS 0,输入框中填写以下信息

    {
      "reported": {
        "temperature": 26,
        "humidity": 45
      }
    }
    

    其中temperaturehumidity及其值,均可自行替换为创建物模型时所指定的属性值,点击“Publish”进行发布操作。

  4. 返回Subscribe界面,即可看到已接收的订阅消息,我们上报的状态已经被影子接受了,参见下图。

  1. 物影子的反控

    打开Subscribe标签,填写主题topic,这次我们在控制台中,物影子「交互」页面找到反控信息下发时会触发的主题 $baidu/iot/shadow/myMonitor/delta

    接下来尝试在物影子详情页,点击编辑,输入期望值,点击保存。

    保存后,切换至 MQTT.fx 的 Subscribe标签,可以看到收到了一条新的信息,正是我们刚才修改的期望值。