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