自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

三分鐘弄懂物聯(lián)網(wǎng)流行協(xié)議——MQTT

物聯(lián)網(wǎng)
2017年最熱門的技術(shù)莫過于:人工智能,區(qū)塊鏈和物聯(lián)網(wǎng)。筆者今天就花三分鐘給大家介紹一個物聯(lián)網(wǎng)中非常的基礎(chǔ)一個常用的流行協(xié)議,MQTT。

最近,最熱門的技術(shù)莫過于:人工智能,區(qū)塊鏈和物聯(lián)網(wǎng)。筆者今天就花三分鐘給大家介紹一個物聯(lián)網(wǎng)中非常的基礎(chǔ)一個常用的流行協(xié)議,MQTT。

[[224268]]

為什么使用MQTT 協(xié)議?

MQTT(英語全稱,Message Queue Telemetry Transport),中文翻譯過來就是遙測傳輸協(xié)議:其主要提供訂閱/發(fā)布模式,更為簡約、輕量,易于使用,針對受限環(huán)境(帶寬低、網(wǎng)絡(luò)延遲高、網(wǎng)絡(luò)通信不穩(wěn)定),屬于物聯(lián)網(wǎng)(Internet of Thing)的一個傳輸協(xié)議。設(shè)計(jì)思想是開放、簡單、輕量、易于實(shí)現(xiàn)。這些特點(diǎn)使它適用于受限環(huán)境。例如,但不僅限于此:

  • 特別適合于網(wǎng)絡(luò)代價昂貴,帶寬低、不可靠的環(huán)境。
  • 能在處理器和內(nèi)存資源有限的嵌入式設(shè)備中運(yùn)行。
  • 使用發(fā)布/訂閱消息模式,提供一對多的消息發(fā)布,從而解除應(yīng)用程序耦合。
  • 使用 TCP/IP 提供網(wǎng)絡(luò)連接。
  • 提供Last Will 和 Testament 特性通知有關(guān)各方客戶端異常中斷的機(jī)制。

對消息中間件,估計(jì)大家不得不關(guān)心的就是消息的可靠性,也就是消息的發(fā)布服務(wù)質(zhì)量,可喜的是,MQTT支持三種消息發(fā)布服務(wù)質(zhì)量(QoS):

  • “至多一次”(QoS==0),消息發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡(luò)。會發(fā)生消息丟失或重復(fù)。這一級別可用于如下情況,環(huán)境傳感器數(shù)據(jù),丟失一次讀記錄無所謂,因?yàn)椴痪煤筮€會有第二次發(fā)送。
  • “至少一次”(QoS==1),確保消息到達(dá),但消息重復(fù)可能會發(fā)生。
  • “只有一次”(QoS==2),確保消息到達(dá)一次。這一級別可用于如下情況,在計(jì)費(fèi)系統(tǒng)中,消息重復(fù)或丟失會導(dǎo)致不正確的結(jié)果。小型傳輸,開銷很小(固定長度的頭部是 2 字節(jié)),協(xié)議交換最小化,以降低網(wǎng)絡(luò)流量。

協(xié)議規(guī)范的版本

MQTT的協(xié)議***的三個版本是:3.1.1,3.1.0和5.0的協(xié)議。

  • 3.1.0的規(guī)范如下:http://public.dhe.ibm.com/software/dw/webservices/ws-mqtt/mqtt-v3r1.html
  • 3.1.1的規(guī)范如下:http://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html#_Toc398718029
  • 5.0 的規(guī)范如下:http://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html

其中5.0還只是一個提案(2017年7月13日發(fā)布的一個草稿版的提案),所以本篇文章暫時不涉及MQTT 5.0的協(xié)議,考慮到目前主流和成熟的MQTT協(xié)議的應(yīng)用都是MQTT 3.1.1的協(xié)議,所以筆者還是以MQTT 3.1.1的協(xié)議為基準(zhǔn),給大家分享,只要這個會了,其他的自然不在話下。需要注意的是,MQTT 3.1.0和3.1.1 規(guī)范,還是有小部分的區(qū)別的。比如可變頭部中,在3.1.0的規(guī)范中,其關(guān)鍵字是,“MQISdP”。

支持MQTT協(xié)議消息中間件產(chǎn)品?

目前有很多的MQTT消息中間件服務(wù)器,如下,都是MQTT協(xié)議的服務(wù)器端的實(shí)現(xiàn)。

  • IBM Websphere
  • MQ Telemetry
  • IBM MessageSight
  • Mosquitto
  • Eclipse Paho
  • emqttd Xively
  • M2M.io
  • webMethods
  • Nirvana Messaging
  • RabbitMQ
  • Apache ActiveMQ
  • Apache Apollo
  • Moquette
  • HiveMQ
  • Mosca
  • Litmus Automation Loop
  • JoramMQ
  • ThingMQ
  • VerneMQ

支持一對多的消息訂閱

MQTT協(xié)議,支持一對多的基于消息主題(Topic)的消息訂閱,也就是一個MQTT的客戶端,發(fā)送一條特定主題的消息,

能同時支持多個訂閱者同時訂閱。

如下圖所示意,筆記本和手機(jī)都訂閱了消息主題為temperature的消息,當(dāng)溫度傳感器發(fā)布了temperature的消息(當(dāng)前溫度為21 C), 筆記本和手機(jī)都會受到溫度傳感器發(fā)布的溫度。

[[224269]]

MQTT客戶端的語言支持

目前市面上的主流語言都支持。

  • Java
  • Javascript
  • C/C++
  • Python
  • Ruby
  • Objective-C
  • ...
責(zé)任編輯:趙寧寧 來源: 冰塵無極
相關(guān)推薦

2022-03-29 09:18:55

區(qū)塊鏈

2021-10-27 05:47:53

通信協(xié)議協(xié)議網(wǎng)絡(luò)技術(shù)

2022-02-24 10:28:23

物聯(lián)網(wǎng)

2024-05-16 11:13:16

Helm工具release

2009-11-09 12:55:43

WCF事務(wù)

2024-12-18 10:24:59

代理技術(shù)JDK動態(tài)代理

2019-07-18 17:08:56

物聯(lián)網(wǎng)技術(shù)軟件

2020-10-29 17:39:18

物聯(lián)網(wǎng)智慧城市技術(shù)

2020-11-26 14:00:41

物聯(lián)網(wǎng)智慧城市技術(shù)

2022-02-17 09:24:11

TypeScript編程語言javaScrip

2021-04-20 13:59:37

云計(jì)算

2023-12-27 08:15:47

Java虛擬線程

2024-01-16 07:46:14

FutureTask接口用法

2024-08-30 08:50:00

2020-12-22 14:43:44

物聯(lián)網(wǎng)智慧城市安全

2013-06-28 14:30:26

棱鏡計(jì)劃棱鏡棱鏡監(jiān)控項(xiàng)目

2020-06-30 10:45:28

Web開發(fā)工具

2021-12-17 07:47:37

IT風(fēng)險框架

2024-10-15 09:18:30

2021-02-03 14:31:53

人工智能人臉識別
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號