服務端如何通過“主題”來控制客戶端之間的信息通訊,看下圖實例:
在以上圖示中一共有三個 MQTT 客戶端,它們分別是開發(fā)板、手機和電腦。MQTT 服務端在管理 MQTT通信時使用了“主題”來對信息進行管理。
比如上圖所示,假設我們需要利用手機和電腦獲取開發(fā)板在運行過程中 SoC 芯片的溫度,那么首先電腦和手機這兩個客戶端需要向 MQTT服務器訂閱主題“芯片溫度”;接下來,當開發(fā)板客戶端向服務端的“芯片溫度”主題發(fā)布信息(假設信息的內容就是當前的溫度值)后,服務端就會首先檢查都有哪些客戶端訂閱了“芯片溫度”這一主題的信息,而當它發(fā)現訂閱了該主題的客戶端有一個手機和一個電腦,于是服務端就會將剛剛收到的“芯片溫度”信息轉發(fā)給訂閱了該主題的手機和電腦客戶端。
通過以上的這種實例,手機和電腦便可以獲取到開發(fā)板運行時 SoC 芯片的溫度值。
以上實例中,開發(fā)板是“芯片溫度”主題的發(fā)布者,而手機和電腦則是該主題的訂閱者。
值得注意的是,MQTT 客戶端在通信時,角色往往不是單一的,一個客戶端既可以作為信息發(fā)布者也 可以同時作為信息訂閱者。如下圖所示:
上圖中的所有客戶端都是圍繞“LED 控制”這一主題進行通信。此時,對于“LED 控制”這一主題來 說,手機和電腦客戶端成為了 MQTT信息的發(fā)布者而開發(fā)板則成為了 MQTT 信息的訂閱者(接收者)。
所以由此可知,針對不同的主題,MQTT 客戶端可以切換自己的角色,它們可能對主題 A 來說是信息發(fā)布者,但是對于主題 B 就成了信息訂閱者,所以一個MQTT 客戶端它的角色并不是固定的,所以大家一定要理解“主題”這個概念。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。
舉報投訴
相關推薦
本篇介紹了在TCP通信中,客戶端通過UDP廣播,實現自動獲取服務端的IP地址,并進行TCP連接的具體方法,并通過代碼實現,來測試此方案是實際效果,為了使服務端能夠處理多個客戶端的請求,
發(fā)表于 09-27 08:56
?3411次閱讀
同時發(fā)送數據。但是現在遇到問題,服務端不能接收到所有連接的客戶端向其發(fā)送的數據,只能收到最后一個連接的客戶端向服務端發(fā)送的數據,其他的客戶端
發(fā)表于 11-09 14:20
假如有多個客戶端同時連接到服務端,怎么知道是哪個客戶端傳輸數據過來,是有事件還是一個個輪詢過去呢
發(fā)表于 12-22 21:25
Swoole TCP服務端與客戶端 持續(xù)更新
發(fā)表于 09-26 16:04
請問Lwip做服務端應用時,怎么實現多個客戶端同時連接它(帶操作系統(tǒng))!??!請大家指點一下!
發(fā)表于 11-11 01:06
本人學生,最近的項目用到STM32+W5500的開發(fā)板,需要用W5500完成UDP組播功能,目前有以下兩個問題,求各位大神幫忙解答一下:1、UDP組播中客戶端和服務端怎么區(qū)分,比如電腦給開發(fā)板發(fā)消息
發(fā)表于 04-03 16:47
畢設采用的是TCP協(xié)議,組員做的是下位機,C編程,WiFi模塊工作處于客戶端。我負責上位機,Labview使用tcp協(xié)議時服務端怎么接收客戶端的數據呢? 我找到的例程都是服務端發(fā)、
發(fā)表于 04-14 14:49
LabVIEW 做TCP服務端因為要連接四個客戶端假如有四個客戶端分別是1號 2號 3號 4號,這四個客戶端分開單獨控制,每次連接
發(fā)表于 05-29 16:48
詳情2.1.2 數據庫接口及實現2.1.2.1 用戶注冊2.1.2.2 用戶查詢2.2 監(jiān)控系統(tǒng)客戶端及服務端設計2.2.1 `CS`模型2.2.2 功能2.2.2 服務機與客戶機交互
發(fā)表于 12-21 07:02
,CH395客戶端再去連接,這時需要時間很長2分鐘左右 。如果CH395不回送通訊數據,在電腦TCP服務端斷開TCP連接后,電腦TCP服務端再開監(jiān)聽,CH395
發(fā)表于 10-14 06:09
我在網上找一個通訊貓MQTT服務器在線客戶端。我有點糊涂,到底是服務器,還是客戶端??梢赃B上,也可以發(fā)數據,就是不知道跟誰連。我從上面下了個
發(fā)表于 11-19 12:17
Android 仿QQ客戶端及服務端源碼
發(fā)表于 03-19 11:23
?3次下載
器(broker),它是 MQTT 信息傳輸的樞紐,負責將 MQTT 客戶端發(fā)送來的信息傳遞給 MQTT 客戶端;MQTT 服務端還負責管理
發(fā)表于 07-30 14:55
?2230次閱讀
服務端測試和客戶端測試是軟件開發(fā)過程中的兩個重要環(huán)節(jié),它們分別針對服務器端和客戶端的軟件進行測試。本文將詳細介紹服務端測試和
發(fā)表于 05-30 15:27
?1400次閱讀
客戶端請求、執(zhí)行業(yè)務邏輯、與數據庫交互等。服務端測試的目的是確保服務器端的軟件組件能夠按照預期工作,沒有錯誤,并且能夠滿足性能要求。 服務端測試的類型 單元測試 :針對單個函數或模塊進
發(fā)表于 05-30 15:30
?427次閱讀
評論