開放、平等、協(xié)作、快速、分享
本文檔以MQTT.fx為例,介紹使用第三方軟件以MQTT協(xié)議接入物聯網平臺。MQTT.fx是一款基于Eclipse Paho,使用Java語言編寫的MQTT客戶端工具。支持通過Topic訂閱和發(fā)布消息。
已在物聯網平臺控制臺創(chuàng)建產品和設備,并獲取設備證書信息(ProductKey、DeviceName和DeviceSerect)。創(chuàng)建產品和設備具體操作細節(jié),請參考創(chuàng)建產品、單個創(chuàng)建設備或批量創(chuàng)建設備。
下載并安裝MQTT.fx軟件。請訪問MQTT.fx官網。 打開MQTT.fx軟件,單擊設置圖標。 設置連接參數。物聯網平臺目前支持兩種連接模式,不同模式設置參數不同。 單擊下載Password生成小工具。解壓縮下載包后,雙擊sign文件,即可使用。 使用Password生成小工具的輸入參數: 手動生成方法如下: productKey:設備所屬產品Key??稍诳刂婆_設備詳情頁查看。 deviceName:設備名稱??稍诳刂婆_設備詳情頁查看。 deviceSecret:設備密鑰??稍诳刂婆_設備詳情頁查看。 timestamp:(可選)時間戳。 clientId:設備的ID信息,與Client ID中${clientId}一致。 method:選擇簽名算法類型,與Client ID中signmethod確定的加密方法一致。 ${clientId}為設備的ID信息??扇∪我庵?,長度在64字符以內。建議使用設備的MAC地址或SN碼。 securemode為安全模式,TCP直連模式設置為 signmethod為算法類型,支持hmacmd5和hmacsha1。 TCP直連:Client ID中 TLS直連:Client ID中 拼接參數。 提交給服務器的clientId、deviceName、productKey和timestamp(timestamp為非必選參數)參數及參數值依次拼接。 本例中,clientId值為12345,deviceName值為device,productKey值為alxxxxxxxxx,拼接結果為: 加密。 通過Client ID中確定的加密方法,使用設備deviceSecret,將拼接結果加密。 假設設備的deviceSecret值為abc123,加密計算格式為 設置基本信息。 格式: 其中,${region}需替換為您物聯網平臺服務所在地域的代碼。地域代碼,請參見地域和可用區(qū)。如: 格式固定: 完整示例: 其中, General欄目下的設置項可保持系統(tǒng)默認,也可以根據您的具體需求設置。 單擊User Credentials,設置User Name和Password。 固定格式: 完整示例如: 您可以使用物聯網平臺提供的生成工具自動生成Password,也可以手動生成Password。 (可選)TLS直連模式(即 設置完成后,單擊右下角的OK。 單擊Connect進行連接。 從物聯網平臺發(fā)送消息,在MQTT.fx上接收消息,測試MQTT.fx與物聯網平臺連接是否成功 。 在MQTT.fx上,單擊Subscribe。 輸入一個設備具有訂閱權限的Topic,單擊Subscribe,訂閱這個Topic。 訂閱成功后,該Topic將顯示在列表中。 在物聯網平臺控制臺中,該設備的設備詳情頁,Topic列表下,單擊已訂閱的Topic對應的發(fā)布消息操作按鈕。 輸入消息內容,單擊確認。 回到MQTT.fx上,查看是否接收到消息。 在MQTT.fx上發(fā)送消息,通過查看設備日志,測試MQTT.fx與物聯網平臺連接是否成功 。 在MQTT.fx上,單擊Publish。 輸入一個設備具有發(fā)布權限的Topic,和要發(fā)送的消息內容,單擊Publish,向這個Topic推送一條消息。 在物聯網平臺控制臺中,該設備的 欄下,查看上行消息。 在MQTT.fx上,單擊Log查看操作日志和錯誤提示日志。使用MQTT.fx接入
securemode=3
,TLS直連為securemode=2
。securemode=3
,無需設置SSL/TLS信息。securemode=2
,需要設置SSL/TLS信息。clientId12345deviceNamedeviceproductKeyalxxxxxxxxx
hmacsha1(abc123,clientId12345deviceNamedeviceproductKeyalxxxxxxxxx)
參數 說明 Profile Name 輸入您的自定義名稱。 Profile Type 選擇為MQTT Broker。 MQTT Broker Profile Settings Broker Address 連接域名。 ${YourProductKey}.iot-as-mqtt.${region}.aliyuncs.com
。alxxxxxxxxx.iot-as-mqtt.cn-shanghai.aliyuncs.com
。Broker Port 設置為1883。 Client ID 填寫mqttClientId,用于MQTT的底層協(xié)議報文。 ${clientId}|securemode=3,signmethod=hmacsha1|
。12345|securemode=3,signmethod=hmacsha1|
。General 參數 說明 User Name 由設備名DeviceName、符號(&)和產品ProductKey組成。 ${YourDeviceName}&${YourPrductKey}
。device&alxxxxxxxxx
。Password 密碼由參數值拼接加密而成。 securemode=2
)下,需要選擇SSL/TLS,勾選Enable SSL/TLS,設置Protocol。建議Protocol選擇為TLSv1.2。securemode=3
)下,無需設置SSL/TLS信息,直接進入下一步。下行通信測試
上行通信測試
查看日志