偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

大白話聊物聯(lián)網(wǎng)通信過程,看不懂算我輸!

物聯(lián)網(wǎng) 物聯(lián)網(wǎng)應用
MQTT的服務器端管理著很多主題(topic),發(fā)布者是指對某個主題發(fā)布消息,訂閱者是指訂閱不同的主題。

[[427527]]

大家好,我是程序員小哈,十一假期結束了,我們繼續(xù)分享嵌入式相關知識,喜歡的小伙伴,文末點贊,讓我看到哈。

上一篇網(wǎng)文 與OneNET服務器連接初體驗 我們介紹了使用 MQTT.fx 軟件連接上OneNET服務器。

今天我們來看一下,MQTT客戶端如何與OneNET服務器進行數(shù)據(jù)通信,發(fā)布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)他們三者之間是什么樣的關系。

OneNET平臺的主題

MQTT的服務器端管理著很多主題(topic),發(fā)布者是指對某個主題發(fā)布消息,訂閱者是指訂閱不同的主題。

發(fā)布者和訂閱者都屬于客戶端,一個客戶端既可以是發(fā)布者,也可以是訂閱者。

發(fā)布者針對某個主題發(fā)布了一條消息至服務器,服務器會分發(fā)給所有訂閱了該主題的訂閱者。

因此定閱與發(fā)布必須要有主題,主題相當于對發(fā)送給服務器端的消息進行了分類,只有客戶端定閱了某個主題后,才能收到相應主題的payload,才能進行通信。

一個客戶端可以向服務器訂閱多個主題。

比如我們分享過的的綜合實例:基于ZigBee的智能家居 。

這里阿里云物聯(lián)網(wǎng)平臺就是MQTT的服務器(Broker),手機上的云智能APP和我們做的控制板就屬于客戶端。

手機控制電燈開關,就是對設備屬性進行設置,手機APP端發(fā)布了一個控制燈動作的消息,控制板訂閱了這個消息,控制板就能收到服務器轉發(fā)來的這個消息,進而就能實現(xiàn)手機對控制板的控制。

控制板通過溫濕度傳感器獲取室內的溫濕度信息,控制板通過發(fā)布帶有溫濕度信息的消息至服務器,手機端因為訂閱了此主題的消息,手機端也就可以收到此消息了,對此消息進行解析,進而顯示到手機APP中,也就實現(xiàn)了控制板上的溫濕度數(shù)據(jù)的上傳,這就是對設備屬性的上報。

參考官方的文檔,我們得知OneNET平臺的主題格式如下:

主題類型 請求topic 響應topic
設備屬性上報 上行:$sys/{pid}/{device-name}/thing/property/post $sys/{pid}/{device-name}/thing/property/post/reply
設備屬性設置 下行:$sys/{pid}/{device-name}/thing/property/set $sys/{pid}/{device-name}/thing/property/set_reply
設備屬性獲取 下行:$sys/{pid}/{device-name}/thing/property/get $sys/{pid}/{device-name}/thing/property/get_reply
設備事件上報 上行:$sys/{pid}/{device-name}/thing/event/post $sys/{pid}/{device-name}/thing/event/post/reply

其中, {pid} 由產品ID替換,我們上文創(chuàng)建的產品ID為:hg8zt6E3LP。{device-name} 設備名稱為:XiaoHaLED 。

下面我們使用 MQTT.fx 軟件充當客戶端,與OneNET服務器進行通信,我們看看如何發(fā)布和訂閱消息。

發(fā)布消息

MQTT傳輸?shù)南⒎譃椋褐黝}(topic--區(qū)分不同消息)和負載(payload--消息內容)兩部分。

通過上面我們知道,如果設備的屬性要上報給服務器,那么其主題為:$sys/{pid}/{device-name}/thing/property/post

替換產品ID和設備名稱之后為:$sys/hg8zt6E3LP/XiaoHaLED/thing/property/post

  1.   "id""123"
  2.   "version""1.0"
  3.   "params": { 
  4.     "Runtime": { 
  5.       "value": 1000 
  6.     } 
  7.   } 

使用 MQTT.fx 軟件實現(xiàn)設備屬性上報,具體操作如下:

也可以同時改變多個參數(shù):

  1.  "id""123"
  2.  "version""1.0"
  3.  "params": { 
  4.   "Runtime": { 
  5.    "value": 1000 
  6.   }, 
  7.   "PowerSwitch": { 
  8.    "value"true 
  9.   } 
  10.  } 

使用 MQTT.fx 軟件實現(xiàn)設備多屬性上報,具體操作如下:

發(fā)布消息需要填寫 topic、payload和消息的服務質量等級。

MQTT.fx軟件右側的 QoS0、 QoS1等是消息服務質量等級。

MQTT協(xié)議中有三種消息發(fā)布服務質量:

QoS0:“至多一次”,消息發(fā)布完全依賴底層 TCP/IP 網(wǎng)絡。會發(fā)生消息丟失或重復的情況。此級別一般用于環(huán)境傳感器數(shù)據(jù)上傳,即使丟失一次數(shù)據(jù)也無所謂,因為一般傳感器數(shù)據(jù)的上傳都是周期性的。

QoS1:“至少一次”,確保消息到達,但消息重復可能會發(fā)生。

QoS2:“只有一次”,確保消息到達一次。這一級別可用于對消息丟失和重復不能容忍的場景,比如在計費系統(tǒng)中,此服務質量的消息因為系統(tǒng)開銷大,一般物聯(lián)網(wǎng)平臺都是不支持的。

OneNET平臺對協(xié)議特性支持如下:

MQTT的訂閱

通常客戶端與MQTT Broker建立連接之后,客戶端首先要對其感興趣的主題進行一下訂閱。

比如設備屬性設置,下行:$sys/{pid}/{device-name}/thing/property/set

替換產品ID和設備名稱之后為:$sys/hg8zt6E3LP/XiaoHaLED/thing/property/set

下面演示一下,使用MQTT.fx軟件訂閱設備屬性設置的主題,然后使用OneNET控制臺中的應用模擬器(模擬一個客戶端),當其改變某個屬性的時候,MQTT.fx軟件會同步收到此主題的消息內容,對此消息進行解析,就可以知道對設備屬性設置的指令的具體內容了。

總結

本文介紹了 MQTT協(xié)議 ,MQTT協(xié)議采用發(fā)布/訂閱(Publish/Subscribe)模式,該協(xié)議主要有三個角色:發(fā)布者(Publish)、代理(Broker)(服務器)、訂閱者(Subscribe)。

他們三者的關系如下圖所示:

由上圖我們可以看出來,消息傳遞的時候,并不是從消息的發(fā)布方直接送達到訂閱端,而是經過 MQTT Broker 進行消息的分發(fā)。

這種發(fā)布/訂閱消息模式,提供了一種一對多的消息分發(fā)機制,進而實現(xiàn)了應用程序的解耦。

發(fā)布者(Publish) 是發(fā)送消息的一方,可以為一個應用程序或一臺設備。

代理(Broker)(服務器) 是管理消息隊列的一方,位于消息發(fā)布者和訂閱者之間。云端(服務器端)通過主題(Topic)的方式管理各個物聯(lián)網(wǎng)設備的訂閱,實現(xiàn)將設備與設備之間消息進行轉發(fā)。

訂閱者(Subscribe) 是訂閱主題的一方,主要用于接收消息。 

怎么樣?通過上面的描述,物聯(lián)網(wǎng)的通信過程你明白了嗎?

本文轉載自微信公眾號「嵌入式從0到1」,可以通過以下二維碼關注。轉載本文請聯(lián)系嵌入式從0到1公眾號。

 

責任編輯:武曉燕 來源: 嵌入式從0到1
相關推薦

2020-02-04 15:00:25

大白話認識JVM

2021-02-18 09:06:39

數(shù)據(jù)訪問者模式

2023-12-26 18:22:05

RocketMQ延遲消息

2018-08-03 18:15:40

物聯(lián)網(wǎng)通信架構IOT

2018-06-11 23:34:42

2019-08-14 09:13:38

中臺互聯(lián)網(wǎng)業(yè)務

2021-01-12 09:47:14

物聯(lián)網(wǎng) 通信技術通訊技術

2021-09-01 11:18:33

物聯(lián)網(wǎng)窄帶物聯(lián)網(wǎng)IoT

2020-02-20 11:32:09

Kafka概念問題

2024-01-23 12:47:27

2021-12-16 10:49:32

物聯(lián)網(wǎng)通信協(xié)議網(wǎng)絡

2020-06-01 14:15:57

物聯(lián)網(wǎng)通信協(xié)議無線通訊

2023-04-27 17:49:38

物聯(lián)網(wǎng)通信協(xié)議

2019-12-09 08:29:26

Netty架構系統(tǒng)

2018-02-25 22:37:34

2019-05-17 08:27:23

SQL注入漏洞攻擊

2020-12-04 06:40:46

Zookeeper選舉機制

2018-12-07 13:58:38

物聯(lián)網(wǎng)通信協(xié)議IOT

2020-09-08 06:30:59

微服務代碼模塊

2022-12-12 07:40:36

服務器項目Serverless
點贊
收藏

51CTO技術棧公眾號