裝置通過您自研的MQTT接入工具串連物聯網平台時,需輸入MQTT的簽名認證參數username、passwd和mqttClientId。本文介紹擷取MQTT串連簽名參數值的方法。
概述
您可根據實際業務需要,選擇如下方法擷取MQTT簽名參數值。
方法 | 說明 |
直接在物聯網平台擷取 | 支援簽名演算法為hmacsha256。 裝置的ClientId預設為 |
使用Node.js語言指令碼計算 | 支援簽名演算法為hmacsha256。 裝置的ClientId預設為 |
直接在物聯網平台擷取
登入物聯網平台控制台。
在執行個體概覽頁簽的全部環境下,找到對應的執行個體,單擊執行個體卡片。
- 在左側導覽列,選擇 ,進入裝置頁面。
- 在裝置列表中,單擊目標裝置對應的查看按鈕,進入裝置詳情頁面。
- 在裝置資訊頁簽下,單擊MQTT串連參數右側的查看,擷取MQTT簽名參數資訊。重要 其中clientId是mqttClientId值,請勿與裝置的clientId混淆。MQTT串連參數的詳細說明,請參見MQTT-TLS串連通訊。
使用Node.js語言指令碼計算
- 下載簽名工具包signTool.zip,解壓縮後,在檔案mqttSignTool.js中修改以下參數,並儲存。
參數 樣本 說明 productKey a1Ee*** 您添加裝置後,儲存的裝置認證資訊,請參見裝置認證資訊。 您可在控制台中裝置的裝置詳情頁面查看。
deviceName 8Co5*** deviceSecret bcabcf*** timestamp 2524608000000 時間戳記。目前時間毫秒值。 briefId 12345 裝置的Client ID資訊。選擇性參數。 本工具包預設設定為
${ProductKey} + '.' + ${DeviceName}
組成的字串,您可根據需要修改,例如var briefId = '12345'
。重要 該值可自訂,長度在64個字元以內。建議使用您裝置的MAC地址或SN碼,方便您識別區分不同的裝置。 - 在Windows系統或Linux系統下,下載並安裝Node.js。本文以Ubuntu 16.04 64位Linux系統為例,下載已編譯的包
node-v16.5.0-linux-x64.tar.gz
。- 登入Linux虛擬機器。
- 執行以下命令,下載對應版本包,然後解壓。
wget https://nodejs.org/dist/v16.5.0/node-v16.5.0-linux-x64.tar.gz tar xf node-v16.5.0-linux-x64.tar.gz cd node-v16.5.0-linux-x64 ./bin/node -v
顯示如下版本號碼,表示解壓安裝成功。v16.5.0
- 在node-v16.5.0-linux-x64/bin檔案目錄下包含了node、npm等命令,執行以下命令配置全域環境變數。
ln -s /root/node-v16.5.0-linux-x64/bin/npm /usr/local/bin/ ln -s /root/node-v16.5.0-linux-x64/bin/node /usr/local/bin/
- 執行以下命令,先退出node-v16.5.0-linux-x64檔案目錄,然後建立專案檔signTool,來存放JavaScript檔案和簽名庫檔案。
cd.. mkdir signTool cd signTool/
- 將步驟1中已修改完成的mqttSignTool.js檔案,上傳至Linux虛擬機器開發環境的signTool目錄下。
- 在signTool檔案下,執行以下命令,下載並查看簽名庫檔案。
npm install crypto-js ls
下載後的庫檔案如下圖所示。 - 執行以下命令,運行簽名檔案mqttSignTool.js。
node mqttSignTool.js
返回如下資訊,即為通過MQTT接入物聯網平台的簽名認證參數資訊。重要 其中clientId是mqttClientId值,請勿與裝置的clientId混淆。MQTT串連參數的詳細說明,請參見MQTT-TLS串連通訊。