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