<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 一、概述 MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的"輕量級"通訊協議,該協議構建于TCP/IP協議上,由IBM在1999年發布。MQTT最大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用; MQTT是一個基于客戶端-服務器的消息發布/訂閱傳輸協議。MQTT協議是輕量、簡單、開放和易于實現的,這些特點使它適用范圍非常廣泛。在很多情況下,包括受限的環境中,如:機器與機器(M2M)通信和物聯網(IoT)。其在,通過衛星鏈路通信傳感器、偶爾撥號的醫療設備、智能家居、及一些小型化設備中已廣泛使用; ## 二、工作機制 ![](https://img.kancloud.cn/0d/25/0d2589d362b6cade6c5614a6280e0131_979x543.png) MQTT的使用流程就是:生產者給主題發消息->broker進行消息的傳遞->訂閱該主題的消費者拿到消息并進行相應的業務邏輯; ## 三、產品 需要注意,Mqtt是一種協議,有很多實現的產品,如: Apache ActiveMQ,Apache ActiveMQ Artemis、RabbitMQ等; ## 四、原理 >[danger] 簡單來說,MQTT的機制就是在服務器(Broker)端創建一個唯一訂閱號,發送者可以向這個訂閱號中發東西,然后接受者(即訂閱了這個訂閱號的客戶端)都會收到這個訂閱號發出來的消息,以此來完成消息的推送,服務器其實是一個消息中轉站; ## 五、核心元素 MQTT協議中有三種身份:發布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。其中,消息的發布者和訂閱者都是客戶端,消息代理是服務端,消息發布者可以同時是訂閱者; ### **MQTT客戶端** 客戶端分發布者和訂閱者,客戶端可以同時充當發布者和訂閱者,主要的功能包括: 1. 發布其他客戶端可能會訂閱的信息; 2. 訂閱其它客戶端發布的消息; 3. 退訂或刪除應用程序的消息; 4. 斷開與服務器連接; ### **MQTT服務器** MQTT服務器以稱為"消息代理"(Broker),可以是一個應用程序或一臺設備。它是位于消息發布者和訂閱者之間,主要的功能包括: 1. 接受來自客戶的網絡連接; 2. 接受客戶發布的應用信息; 3. 處理來自客戶端的訂閱和退訂請求; 4. 向訂閱的客戶轉發應用程序消息; ## 六、消息結構 MQTT傳輸的消息分為:主題(Topic)和負載(payload)兩部分: (1)Topic,可以理解為消息的類型,訂閱者訂閱(Subscribe)后,就會收到該主題的消息內容(payload); (2)payload,可以理解為消息的內容,是指訂閱者具體要使用的內容。 ## 七、核心概念 **主題** MQTT消息的主要傳播途徑, 我們向主題發布消息, 訂閱主題, 從主題中讀取消息并進行業務邏輯處理, 主題是消息的通道 **生產者** MQTT消息的發送者, 他們向主題發送消息; **消費者** MQTT消息的接收者, 他們訂閱自己需要的主題, 并從中獲取消息; **broker** 消息轉發器, 消息是通過它來承載的, 那些開源產品就是我們的broker, 在使用中我們可以不用關心它的具體實現是哪個產品; **訂閱(Subscription)** 訂閱包含主題篩選器(Topic Filter)和最大服務質量(QoS)。訂閱會與一個會話(Session)關聯。一個會話可以包含多個訂閱。每一個會話中的每個訂閱都有一個不同的主題篩選器。 **會話(Session)** 每個客戶端與服務器建立連接后就是一個會話,客戶端和服務器之間有狀態交互。會話存在于一個網絡之間,也可能在客戶端和服務器之間跨越多個連續的網絡連接。 **主題名(Topic Name)** 連接到一個應用程序消息的標簽,該標簽與服務器的訂閱相匹配。服務器會將消息發送給訂閱所匹配標簽的每個客戶端。 **主題篩選器(Topic Filter)** 一個對主題名通配符篩選器,在訂閱表達式中使用,表示訂閱所匹配到的多個主題。 **負載(Payload)** 消息訂閱者所具體接收的內容。 ## 八、動作/方法 MQTT協議中定義了一些方法(也被稱為動作),來于表示對確定資源所進行操作。這個資源可以代表預先存在的數據或動態生成數據,這取決于服務器的實現。通常來說,資源指服務器上的文件或輸出。主要方法有: (1)Connect:等待與服務器建立連接。 (2)Disconnect:等待MQTT客戶端完成所做的工作,并與服務器斷開TCP/IP會話。 (3)Subscribe:等待完成訂閱。 (4)UnSubscribe:等待服務器取消客戶端的一個或多個topics訂閱。 (5)Publish:MQTT客戶端發送消息請求,發送完成后返回應用程序線程。 ## 九、版本 目前主要存在兩個大版本,v3.1.1和V5.0; ## 十、MQTT和MQTT over Websockets MQTT over Websockets的優點直接支持瀏覽器(對webapp友好),且通過HTTP/HTTPS協議; MQTT 本身是走TCP協議,支持各種客戶端;
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看