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

評論