色yeye在线视频观看_亚洲人亚洲精品成人网站_一级毛片免费播放_91精品一区二区中文字幕_一区二区三区日本视频_成人性生交大免费看

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > MQTT代理搭建

MQTT代理搭建 時間:2018-09-29      來源:未知

近接觸MQTT協議,MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議)協議是一種基于發布/訂閱(publish/subscribe)模式的“輕量級”通訊協議,該協議構建于TCP/IP協議上,由IBM在1999年發布。MQTT大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。做為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。

MQTT的特色

MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議。MQTT協議是輕量、簡單、開放和易于實現的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(M2M)通信和物聯網(IoT)。其在,通過衛星鏈路通信傳感器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中已廣泛使用。

MQTT協議當前版本為,2014年發布的MQTT v3.1.1。除標準版外,還有一個簡化版MQTT-SN,該協議主要針對嵌入式設備,這些設備一般工作于百TCP/IP網絡,如:ZigBee。

MQTT協議運行在TCP/IP或其他網絡協議,提供有序、無損、雙向連接。其特點包括:

1. 使用的發布/訂閱消息模式,它提供了一對多消息分發,以實現與應用程序的解耦。

2. 對負載內容屏蔽的消息傳輸機制。

3. 對傳輸消息有三種服務質量(QoS):

4. 數據傳輸和協議交換的小化(協議頭部只有2字節),以減少網絡流量

5. 通知機制,異常中斷時通知傳輸雙方

服務質量

接下來我們來了解一下MQTT的服務質量,為了滿足不同的場景,MQTT支持三種不同級別的服務質量(Quality of Service,QoS)為不同場景提供消息可靠性:

o 多一次,這一級別會發生消息丟失或重復,消息發布依賴于底層TCP/IP網絡。即:<=1

o 至多一次,這一級別會確保消息到達,但消息可能會重復。即:>=1

o 只有一次,確保消息只有一次到達。即:=1。在一些要求比較嚴格的計費系統中,可以使用此級別

MQTT實現原理

MQTT可以理解主要由兩端構成網絡,一端是服務器端,另一端就是客戶端。

而客戶端又分兩個角色,一個是訂閱者、另一個是發布者,服務器則是代理,流程如下:

訂閱者首先在代理那訂閱主題,發布者發布該主題內容時,訂閱者才會收到,否則不會接收任何信息。

MQTT本身的消息也分為令部分:主題(Topic)和負載(payload)。

o Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload)

o payload,可以理解為消息的內容,是指訂閱者具體要使用的內容

MQTT代理搭建(Linux下搭建)

我們在上面了解了一下MQTT,具體的協議可以去官網//mqtt.org查看,而這些知識只是協議的介紹,下面我們來了解一下如何搭建MQTT網絡,mosquitto是MQTT的開源代理,遵循的是MQTT v3.1.1協議。下面我們搭建代理。

2 # 下載源代碼包

wget //mosquitto.org/files/source/mosquitto-1.4.12.tar.gz

 shell Code 

2 # 解壓

tar zxfv mosquitto-1.3.4.tar.gz

 shell Code 

2 # 進入目錄

cd mosquitto-1.3.4

 shell Code 

2 # 編譯

make

 shell Code 

2 # 安裝

sudo make install

遇到下屬問題的解決辦法:

 idea Code
【1】編譯找不到openssl/ssl.h

【解決方法】——安裝openssl

sudo apt-get install libssl-dev

【2】編譯過程找不到ares.h

【解決方法】——修改config.mk中的WITH_SRV:=yes,改為WITH_SRV:=no

【3】使用過程中找不到libmosquitto.so.1

error while loading shared libraries: libmosquitto.so.1:

cannot open shared object file: No such file or directory

【解決方法】——修改libmosquitto.so位置

# 創建鏈接

sudo ln -s /usr/local/lib/libmosquitto.so.1/usr/lib/libmosquitto.so.1

# 更新動態鏈接庫

sudo ldconfig

【4】make: g++:命令未找到

【解決方法】

安裝g++編譯器

sudo apt-get install g++

MQTT代理的搭建(windows下搭建)

Mosquitto有兩個模式,一個是win32,一個是cygwin,下面是下載地址:

mosquitto-1.0.3-install-win32.exe(743 kB) (Native build, Windows Vista and up)

mosquitto-1.0.3-install-cygwin.exe(2,026kB)(Cygwin build, Windows XP and up)

安裝win2版本

win32直接下載到本地,安裝即可。

如果缺少libeay.dll 、 pthreadVC2.dll、ssleay.dll等庫文件,需要下載到本地同級目錄再進行安裝。

安裝cygwin版本

而安裝cywin是需要下載cygwin,下面是下載地址

mosquitto-1.0.3-install-cygwin.exe

Mosquitto依賴的lib有binutils、gcc4-core、gcc4-gcc、libwrap-devel、libwrap0、make、mercurial、wget。

后安裝mosquitto-cygwin軟件,可以在任務管理器中啟動mosquitto服務。

MQTT設置用戶密碼(windows和Linux相同,這里以;Linux為例)

在 /etc/mosquitto/mosquitto.conf 文件中需配置是否允許匿名用戶、用戶存儲的用戶名密碼的文件路徑、用戶訪問主題權限的文件路徑,配置文如下:

 NormalText Code 

allow_anonymous false # 不允許匿名

password_file /etc/mosquitto/passwd # 配置用戶密碼文件

acl_file /etc/mosquitto/acl  #配置topic和用戶 (此文件是配置用戶訪問某主題,

如果不配置則使用password_file文件中的用戶密碼進行訪問)

添加用戶

 NormalText Code

#mosquitto_passwd -c /etc/mosquitto/passwd pub_client

#mosquitto_passwd /etc/mosquitto/passwd sub_client

第一個命令,參數多一個-c,是創建/etc/mosquito/passwd文件,將用戶名和密碼寫到文件中,用戶名是明文,密碼是加密過的密文。

第二個命令,是在已有的用戶上添加新的用戶。

配置好后,代理會屏蔽匿名用戶。

為用戶添加可操作主題

 NormalText Code 

user pub_client

topic write mtopic/#

user sub_client

topic read mtopic/#

在給定mosquitto.conf中給定acl文件的路徑中 打開文件,user后面添加已有用戶名,topic 后面添加 可讀或者可寫的主題,read 是可讀,write是可寫。

上一篇:MQTT開源軟件之EMQ入門篇

下一篇:基于exynos4412的外部中斷處理

华清图书馆

0元电子书,限时免费申领

10本华清图书PDF版

扫码关注华清远见公众号
自动回复“2”,即可申领!
熱點文章推薦
華清學員就業榜單
高薪學員經驗分享
熱點新聞推薦
前臺專線:010-82525158 企業培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,京ICP備16055225號-5京公海網安備11010802025203號

回到頂部

主站蜘蛛池模板: 色五月丁香五月综合五月亚洲 | 成人A级毛片无码免费 | 久久美利坚合众国AV无码 | 亚洲AV无码专区在线观看成人 | 日本老熟妇乱 | A片粗大的内捧猛烈进出视频 | 国产小嫩模无套中出 | 亚洲熟妇国产熟妇肥婆 | 一个人看的免费高清视频www | 中文字幕乱码亚洲影视 | 又粗又大又黄又硬又爽免费看 | 日韩在线看片免费人成视频播放 | 四虎家庭影院 | 久久视频在线观看精品 | 免费观看黄网站在线播放 | 奇米777四色成人影视 | 亚洲自拍p| 人妻丝袜无码专区视频网站 | 狠狠的干性视频 | 岛国片一区 | 欧美高难度牲交视频 | 欧美人与ZOZOXXXX视频 | 日批视频在线 | 黄色大片在线免费观看 | 97碰碰碰免费公开在线视频 | 欧美人与动欧交视频 | 午夜精品久久久久久久久久久 | 爱情岛亚洲论坛成人网站 | 男人狂桶女人高潮嗷嗷叫 | 五十老熟妇乱子伦免费观看 | 97久久草草超级碰碰碰 | 久久亚洲中文无码咪咪爱 | 国产A级护士毛片 | 亚洲欧洲成人AV每日更新 | 亚洲中文字幕a∨ | 两个人在线观看WWW视频 | 久久本道综合久久伊人 | 亚洲精品无码久久久久 | 日韩人妻无码精品一专区 | 麻豆免费观看 | 亚洲国产精品无码久久青草 |