JetLinks物聯網基礎平臺-通過第三方MQTT服務接入設備

在某些場景,設備不是直接接入平臺,而是通過第三方MQTT服務,如:emqtt. 消息編解碼與MQTT服務一樣,從消息協議中使用DefaultTransport.MQTT來獲取消息編解碼器. 本文使用mqtt.fx爲設備端,通過emqtt接入平臺。

創建MQTT客戶端網絡組件

  1. 選擇 網絡組件-->組件管理--> 點擊新增組件按鈕。
    insert-mqtt-client
  2. 在創建完成的模塊上點擊啓動按鈕。
    mqtt-client-start

創建MQTT客戶端設備網關

  1. 選擇 網絡組件-->設備網關--> 點擊新建按鈕。 insert-mqtt-gateway

注意

和MQTT服務設備網關不同的是,客戶端必須指定消息協議,因爲無法通過消息識別出對應的設備標識. 在消息解碼時也無法通過上下文(MessageDecodeContext)獲取到設備操作接口(DeviceOperator). 此處使用演示協議v1.

此處使用的Topics:/another-message,/device_online_status,/fire_alarm。 2. 在操作列點擊啓動按鈕啓動網關。
mqtt-gateway-start

安裝並啓動EMQ

可直接前往官網下載 emqttd。
本文使用docker搭建。

拉取鏡像

docker pull registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6

運行鏡像

docker run --name emq -p 18083:18083 -p 1883:1883 -p 8084:8084 -p 8883:8883 -p 8083:8083 -d registry.cn-hangzhou.aliyuncs.com/synbop/emqttd:2.3.6

訪問EMQ Dashboard

在瀏覽器中輸入 http:192.168.99.100: 18083,默認賬號密碼爲用戶名:admin 密碼:public。

emq-dashboard

使用MQTT.fx連接EMQ

設置連接參數。

配置參數請參考使用MQTT.fx接入

此處參數設置:

mqttfx-config

連接EMQ

單擊 Mqtt.fx客戶端 中Connect進行連接。
mqttfx-connection

連接成功後EMQ Dashboard頁面上將會顯示這條連接記錄。
emq-connection-info

模擬設備上下線

使用MQTT.fx模擬設備上下線。

  1. 單擊 Publish

  2. 輸入設備上下線的topic和事件內容,點擊單擊Publish按鈕,將消息推送到EMQ, EMQ將消息轉發到平臺。

mqttfx-device-online
此處使用的topic: /device-online-status

此處使用的事件內容:

{
   "deviceId":"MQTT_FX_Client",
   "status":"1"
}

消息發送成功後:
device-online

離線操作及效果展示:
mqttfx-device-offline

device-offline

模擬設備消息訂閱

  1. 在MQTT.fx上點擊Subscribe,輸入topic:test,點擊Subscribe按鈕訂閱。
    mqttfx-subscribe

  2. 在平臺中選擇 網絡組件-->組件管理,找到MQTT客戶端組件,點擊調試按鈕。
    mqtt-client-debug

  3. 在調試頁面,選擇推送消息,編輯內容後,點擊發送按鈕,MQTT.fx將會收到消息。

mqtt-client-message-send

mqttfx-client-message-subscribe

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章