服務(wù)端如何通過“主題”來控制客戶端之間的信息通訊,看下圖實例:
在以上圖示中一共有三個 MQTT 客戶端,它們分別是開發(fā)板、手機和電腦。MQTT 服務(wù)端在管理 MQTT通信時使用了“主題”來對信息進行管理。
比如上圖所示,假設(shè)我們需要利用手機和電腦獲取開發(fā)板在運行過程中 SoC 芯片的溫度,那么首先電腦和手機這兩個客戶端需要向 MQTT服務(wù)器訂閱主題“芯片溫度”;接下來,當(dāng)開發(fā)板客戶端向服務(wù)端的“芯片溫度”主題發(fā)布信息(假設(shè)信息的內(nèi)容就是當(dāng)前的溫度值)后,服務(wù)端就會首先檢查都有哪些客戶端訂閱了“芯片溫度”這一主題的信息,而當(dāng)它發(fā)現(xiàn)訂閱了該主題的客戶端有一個手機和一個電腦,于是服務(wù)端就會將剛剛收到的“芯片溫度”信息轉(zhuǎn)發(fā)給訂閱了該主題的手機和電腦客戶端。
通過以上的這種實例,手機和電腦便可以獲取到開發(fā)板運行時 SoC 芯片的溫度值。
以上實例中,開發(fā)板是“芯片溫度”主題的發(fā)布者,而手機和電腦則是該主題的訂閱者。
值得注意的是,MQTT 客戶端在通信時,角色往往不是單一的,一個客戶端既可以作為信息發(fā)布者也 可以同時作為信息訂閱者。如下圖所示:
上圖中的所有客戶端都是圍繞“LED 控制”這一主題進行通信。此時,對于“LED 控制”這一主題來 說,手機和電腦客戶端成為了 MQTT信息的發(fā)布者而開發(fā)板則成為了 MQTT 信息的訂閱者(接收者)。
所以由此可知,針對不同的主題,MQTT 客戶端可以切換自己的角色,它們可能對主題 A 來說是信息發(fā)布者,但是對于主題 B 就成了信息訂閱者,所以一個MQTT 客戶端它的角色并不是固定的,所以大家一定要理解“主題”這個概念。
-
物聯(lián)網(wǎng)
+關(guān)注
關(guān)注
2927文章
46015瀏覽量
389294 -
客戶端
+關(guān)注
關(guān)注
1文章
298瀏覽量
17018 -
服務(wù)端
+關(guān)注
關(guān)注
0文章
68瀏覽量
7202
發(fā)布評論請先 登錄
Linux網(wǎng)絡(luò)編程-TCP客戶端如何獲取要連接的服務(wù)端IP?

評論