您好,登錄后才能下訂單哦!
本篇內容主要講解“MQTT和CoAP在EMQ X里怎么實現連接”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“MQTT和CoAP在EMQ X里怎么實現連接”吧!
關于如何安裝和啟動 EMQ X Broker,你可以在這里找到幫助。
打開 Dashboard,點擊左側插件,右側搜索 CoAP ,點擊啟動,運行 CoAP 插件
( 默認端口 5683 )。
MQTT 的 PUB/SUB
模型中,為了實現端到端通訊,需要設備之間通過 topic
作為橋梁,我們使用 coap_to_mqtt
和 mqtt_to_coap
兩個 topic
,分別作為 CoAP 到 MQTT 的消息 topic
,和 MQTT 到 CoAP 的消息 topic
。
MQTT 與 CoAP 都支持發布/訂閱機制,MQTT 依靠的是報文中的 Topic 字段,而 CoAP 協議類基于 REST 設計,在 EMQ X Broker 中:
PUT
和 GET
: 作為 Publish
和 Subscribe
。
URI
:路徑映射 topic ,規則為:主題名 topic_name
轉化為路徑 /mqtt/topic_name
,即 topic
加上 /mqtt/
前綴。
URI Query
: 路徑參數攜帶了終端信息,包括終端、用戶名、密碼。
# 示例 put "coap://host:port/mqtt/$topic?c=$client&u=$username&p=$password" get "coap://host:port/mqtt/$topic?c=$client&u=$username&p=$password" # -m get | put | post ... # method 請求方式 # coap://host:port # CoAP 協議路徑格式,host 和 port ,填寫 EMQ X Broker 部署的IP,和CoAP插件的端口(默認5683) # /mqtt/$topic # 指 mqtt 的 topic ,需要轉換,規則: # topic 名稱 topic_name ,在 CoAP 中需要使用 /mqtt/topic_name # URI Query # c :終端 # u :用戶名 # p :密碼
至此,準備工作已經完成。
將 MQTT X(EMQ 旗下開源 MQTT 桌面客戶端)連接至你的 EMQ X Broker,并為它訂閱主題 coap_to_mqtt
。
本文中使用的 CoAP 客戶端是 libcoap 。
# 先安裝 libcoap # 使用 git 下載,或者使用下載鏈接 https://github.com/obgm/libcoap/archive/refs/tags/v4.2.1.zip git clone https://github.com/obgm/libcoap.git # 如果你使用下載鏈接下載,unzip 解壓 # unzip libcoap-4.2.1.zip # 進入 libcoap 文件目錄 cd libcoap # 切換至穩定版本 作者使用的是 v4.2.1 # 如果你使用本文中的下載鏈接下載,不需要切換版本。 git checkout v4.2.1 # 安裝配置 ./autogen # ./autogen 的過程中可能會遇到部分依賴缺失的情況(比如 autoconf 和 automake ),按照提示安裝對應依賴即可。 ./configure --enable-documentation=no --enable-tests=no # 打包 make
安裝完成后,CoAP 終端 PUT 消息到 coap_to_mqtt
主題。
# CoAP 終端發送消息 hello EMQ X world, i am coap,topic 為 coap_to_mqtt ./examples/coap-client -m put -e "hello EMQ X world, i am coap" "coap://127.0.0.1/mqtt/coap_to_mqtt?c=coap20211&u=tom&p=secret" # 命令中的 127.0.0.1 替換為你的 EMQ X Broker 部署地址
我們可以看到 MQTT X 收到了來自 CoAP 的問候。
現在為 CoAP 終端訂閱 mqtt_to_coap
主題。
# CoAP 終端訂閱 mqtt_to_coap 主題,-s 20表示訂閱維持20秒 ./examples/coap-client -m get -s 20 "coap://127.0.0.1/mqtt/mqtt_to_coap?c=client1&u=tom&p=secret"
MQTT X 發送 hello coap, i am mqtt welcome to EMQ X Wrold!
至 mqtt_to_coap
主題。
CoAP 也收到了來自 MQTT 的回應。
./examples/coap-client -m get -s 20 "coap://127.0.0.1/mqtt/mqtt_to_coap?c=client1&u=tom&p=secret" hello coap , i am mqtt ,welcome to EMQ World
到此,相信大家對“MQTT和CoAP在EMQ X里怎么實現連接”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。