2017年最熱門的技術(shù)莫過于:人工智能,區(qū)塊鏈和物聯(lián)網(wǎng)。筆者今天就花三分鐘給大家介紹一個物聯(lián)網(wǎng)中非常的基礎一個常用的流行協(xié)議,MQTT。 MQTT (Message Queue Telemetry Transport),翻譯成中文就是,遙測傳輸協(xié)議,其主要提供了訂閱/發(fā)布兩種消息模式,更為簡約、輕量,易于使用,特別適合于受限環(huán)境(帶寬低、網(wǎng)絡延遲高、網(wǎng)絡通信不穩(wěn)定)的消息分發(fā),屬于物聯(lián)網(wǎng)(Internet of Thing)的一個標準傳輸協(xié)議。 為什么使用MQTT 協(xié)議?MQTT(英語全稱,Message Queue Telemetry Transport),中文翻譯過來就是遙測傳輸協(xié)議:其主要提供訂閱/發(fā)布模式,更為簡約、輕量,易于使用,針對受限環(huán)境(帶寬低、網(wǎng)絡延遲高、網(wǎng)絡通信不穩(wěn)定),屬于物聯(lián)網(wǎng)(Internet of Thing)的一個傳輸協(xié)議。設計思想是開放、簡單、輕量、易于實現(xiàn)。這些特點使它適用于受限環(huán)境。例如,但不僅限于此:
對消息中間件,估計大家不得不關(guān)心的就是消息的可靠性,也就是消息的發(fā)布服務質(zhì)量,可喜的是,MQTT支持三種消息發(fā)布服務質(zhì)量(QoS):
協(xié)議規(guī)范的版本MQTT的協(xié)議最新的三個版本是:3.1.1,3.1.0和5.0的協(xié)議。
其中5.0還只是一個提案(2017年7月13日發(fā)布的一個草稿版的提案),所以本篇文章暫時不涉及MQTT 5.0的協(xié)議,考慮到目前主流和成熟的MQTT協(xié)議的應用都是MQTT 3.1.1的協(xié)議,所以筆者還是以MQTT 3.1.1的協(xié)議為基準,給大家分享,只要這個會了,其他的自然不在話下。需要注意的是,MQTT 3.1.0和3.1.1 規(guī)范,還是有小部分的區(qū)別的。比如可變頭部中,在3.1.0的規(guī)范中,其關(guān)鍵字是,“MQISdP”。 支持MQTT協(xié)議消息中間件產(chǎn)品?目前有很多的MQTT消息中間件服務器,如下,都是MQTT協(xié)議的服務器端的實現(xiàn)。
支持一對多的消息訂閱MQTT協(xié)議,支持一對多的基于消息主題(Topic)的消息訂閱,也就是一個MQTT的客戶端,發(fā)送一條特定主題的消息, 能同時支持多個訂閱者同時訂閱。 如下圖所示意,筆記本和手機都訂閱了消息主題為temperature的消息,當溫度傳感器發(fā)布了temperature的消息(當前溫度為21 C), 筆記本和手機都會受到溫度傳感器發(fā)布的溫度。 MQTT客戶端的語言支持目前市面上的主流語言都支持。
|
|
來自: Frank_Chia > 《網(wǎng)絡》