MQTT詳解以及在IoT中的應用

2022-09-13 19:54:23 字數 1377 閱讀 4819

mqtt(message queuing telemetry transport,訊息佇列遙測傳輸)是ibm開發的乙個即時通訊協議,有可能成為物聯網的重要組成部分。該協議支援所有平台,幾乎可以把所有聯網物品和外部連線起來,被用來當做感測器和制動器的通訊協議。

mqtt是基於客戶端/伺服器的二進位制的發布、訂閱程式設計模式的訊息協議,由於規範簡單,非常適用於頻寬低,低功耗的iot場景,比如:遙感、m2m、智慧型城市、智慧型家居、醫療醫護等。由於物聯網的環境非常的特別,所以mqtt有他的設計規範:

mqtt發布訂閱模式:

為了滿足不同的場景,mqtt支援三種不同的服務質量(qos)

mqtt協議原理:

實現mqtt協議需要客戶端和服務端,這個流程有三個角色,發布者(publish)、訂閱者(subscribe)、**,其中發布者可以是某個topic的發布者,也可以是另乙個topic的訂閱者。

mqtt的訊息分為兩個部分:主題(topic)、負載(payload)。

mqtt客戶端:

mqtt服務端:

mqtt協議中的一些方法:

主題層級分隔符:「/」   主題層級分隔符是的主題十分結構化

多層萬用字元:"#』  是用於匹配主題中任意層級的萬用字元。多層萬用字元表示它的父級和任意數量的子層級。多層萬用字元必須位於它自己的層級或者跟在主題層級分隔符後面。不管哪種情況,它都必須是主題過濾器的最後乙個字元 .比如你訂閱了乙個jiangsu/nanjing/*,你會收到如下的主題的訊息

定閱主題示例

單層萬用字元 「+」  只能用於單個層級匹配的萬用字元,在主題過濾器的任意層級都可以使用單層萬用字元,包括第乙個和最後乙個層級。然而它必須佔據過濾器的整個層級 。可以在主題過濾器中的多個層級中使用它,也可以和多層萬用字元起使用。舉個栗子:

總結一下

從上可以看出合理的topic訂閱能夠實現花樣的功能,就比如當初設計分享的使用者的時候完全可以用萬用字元去設計,可以大大的減小計算和篩選量。

事務在Hibernate以及JPA中的應用 二

終於考完試了,接著總結事務在jpa中的應用。jpa中的事務可以採用以下兩種方式 1 resource local 如果採用此種型別的事務,那麼此時其實採用的就是本身資源的事務,比如如果資源是資料庫,那麼事務就是jdbc事務。在此種模式下,我們需要採用jpa介面entitytransaction介面來...

MQTT在react native中的執行

mqtt 1 什麼是mqtt?mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,輕量,高效,具體,請參考菜鳥教程 2 mqtt的幾個重要概念 3 mqtt的幾個方...

MQTT協議在nodejs中的使用

mqtt協議在物聯網中的位置就不用說了,搞物聯網開發能夠使用這個協議就好像在打籃球懂得如何快速 巧妙傳球一樣,各個部件之間的訊息傳遞變得非常簡單方便,本人菜鳥也能發現其中的優勢,如果有朝一日成為牛肉能夠深入了解,覺得將會前途一片光明。廢話少說,下面從乙個肉菜鳥的角度開始解釋這個協議在nodejs下的...