0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

服務(wù)端如何控制客戶端之間的信息通訊

麥辣雞腿堡 ? 來源:嵌入式Linux系統(tǒng)開發(fā) ? 作者:嵌入式Linux系統(tǒng)開 ? 2023-07-30 15:10 ? 次閱讀

服務(wù)端如何通過“主題”來控制客戶端之間的信息通訊,看下圖實(shí)例:

圖片

在以上圖示中一共有三個(gè) MQTT 客戶端,它們分別是開發(fā)板、手機(jī)電腦。MQTT 服務(wù)端在管理 MQTT通信時(shí)使用了“主題”來對(duì)信息進(jìn)行管理。

比如上圖所示,假設(shè)我們需要利用手機(jī)和電腦獲取開發(fā)板在運(yùn)行過程中 SoC 芯片的溫度,那么首先電腦和手機(jī)這兩個(gè)客戶端需要向 MQTT服務(wù)器訂閱主題“芯片溫度”;接下來,當(dāng)開發(fā)板客戶端向服務(wù)端的“芯片溫度”主題發(fā)布信息(假設(shè)信息的內(nèi)容就是當(dāng)前的溫度值)后,服務(wù)端就會(huì)首先檢查都有哪些客戶端訂閱了“芯片溫度”這一主題的信息,而當(dāng)它發(fā)現(xiàn)訂閱了該主題的客戶端有一個(gè)手機(jī)和一個(gè)電腦,于是服務(wù)端就會(huì)將剛剛收到的“芯片溫度”信息轉(zhuǎn)發(fā)給訂閱了該主題的手機(jī)和電腦客戶端。

通過以上的這種實(shí)例,手機(jī)和電腦便可以獲取到開發(fā)板運(yùn)行時(shí) SoC 芯片的溫度值。

以上實(shí)例中,開發(fā)板是“芯片溫度”主題的發(fā)布者,而手機(jī)和電腦則是該主題的訂閱者。

值得注意的是,MQTT 客戶端在通信時(shí),角色往往不是單一的,一個(gè)客戶端既可以作為信息發(fā)布者也 可以同時(shí)作為信息訂閱者。如下圖所示:

圖片

上圖中的所有客戶端都是圍繞“LED 控制”這一主題進(jìn)行通信。此時(shí),對(duì)于“LED 控制”這一主題來 說,手機(jī)和電腦客戶端成為了 MQTT信息的發(fā)布者而開發(fā)板則成為了 MQTT 信息的訂閱者(接收者)。

所以由此可知,針對(duì)不同的主題,MQTT 客戶端可以切換自己的角色,它們可能對(duì)主題 A 來說是信息發(fā)布者,但是對(duì)于主題 B 就成了信息訂閱者,所以一個(gè)MQTT 客戶端它的角色并不是固定的,所以大家一定要理解“主題”這個(gè)概念。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 物聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    2898

    文章

    43780

    瀏覽量

    369092
  • 客戶端
    +關(guān)注

    關(guān)注

    1

    文章

    287

    瀏覽量

    16625
  • 服務(wù)端
    +關(guān)注

    關(guān)注

    0

    文章

    66

    瀏覽量

    6958
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    Linux網(wǎng)絡(luò)編程-TCP客戶端如何獲取要連接的服務(wù)端IP?

    本篇介紹了在TCP通信中,客戶端通過UDP廣播,實(shí)現(xiàn)自動(dòng)獲取服務(wù)端的IP地址,并進(jìn)行TCP連接的具體方法,并通過代碼實(shí)現(xiàn),來測試此方案是實(shí)際效果,為了使服務(wù)端能夠處理多個(gè)客戶端的請(qǐng)求,
    的頭像 發(fā)表于 09-27 08:56 ?3493次閱讀
    Linux網(wǎng)絡(luò)編程-TCP<b class='flag-5'>客戶端</b>如何獲取要連接的<b class='flag-5'>服務(wù)端</b>IP?

    如何能使服務(wù)器向所有客戶端發(fā)信息并且能接收全部的信息

    同時(shí)發(fā)送數(shù)據(jù)。但是現(xiàn)在遇到問題,服務(wù)端不能接收到所有連接的客戶端向其發(fā)送的數(shù)據(jù),只能收到最后一個(gè)連接的客戶端服務(wù)端發(fā)送的數(shù)據(jù),其他的客戶端
    發(fā)表于 11-09 14:20

    TCP多客戶端和單服務(wù)端之間通信問題

    假如有多個(gè)客戶端同時(shí)連接到服務(wù)端,怎么知道是哪個(gè)客戶端傳輸數(shù)據(jù)過來,是有事件還是一個(gè)個(gè)輪詢過去呢
    發(fā)表于 12-22 21:25

    TCP服務(wù)端的實(shí)現(xiàn)

    Swoole TCP服務(wù)端客戶端 持續(xù)更新
    發(fā)表于 09-26 16:04

    如何在Lwip做服務(wù)端應(yīng)用時(shí)實(shí)現(xiàn)多個(gè)客戶端連接?

    請(qǐng)問Lwip做服務(wù)端應(yīng)用時(shí),怎么實(shí)現(xiàn)多個(gè)客戶端同時(shí)連接它(帶操作系統(tǒng))!?。≌?qǐng)大家指點(diǎn)一下!
    發(fā)表于 11-11 01:06

    【求助】W5500UDP組播,客戶端服務(wù)端區(qū)分?以及接收怎么加入組播組?

    本人學(xué)生,最近的項(xiàng)目用到STM32+W5500的開發(fā)板,需要用W5500完成UDP組播功能,目前有以下兩個(gè)問題,求各位大神幫忙解答一下:1、UDP組播中客戶端服務(wù)端怎么區(qū)分,比如電腦給開發(fā)板發(fā)消息
    發(fā)表于 04-03 16:47

    TCP通信時(shí)服務(wù)端如何接收客戶端的數(shù)據(jù)?

    畢設(shè)采用的是TCP協(xié)議,組員做的是下位機(jī),C編程,WiFi模塊工作處于客戶端。我負(fù)責(zé)上位機(jī),Labview使用tcp協(xié)議時(shí)服務(wù)端怎么接收客戶端的數(shù)據(jù)呢? 我找到的例程都是服務(wù)端發(fā)、
    發(fā)表于 04-14 14:49

    LabVIEW 做TCP服務(wù)端怎么把多個(gè)客戶端區(qū)分開

    LabVIEW 做TCP服務(wù)端因?yàn)橐B接四個(gè)客戶端假如有四個(gè)客戶端分別是1號(hào) 2號(hào) 3號(hào) 4號(hào),這四個(gè)客戶端分開單獨(dú)控制,每次連接
    發(fā)表于 05-29 16:48

    監(jiān)控系統(tǒng)客戶端服務(wù)端設(shè)計(jì)

    詳情2.1.2 數(shù)據(jù)庫接口及實(shí)現(xiàn)2.1.2.1 用戶注冊(cè)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作為TCP客戶端,連接電腦TCP服務(wù)端的時(shí)間很長怎么解決?

    ,CH395客戶端再去連接,這時(shí)需要時(shí)間很長2分鐘左右 。如果CH395不回送通訊數(shù)據(jù),在電腦TCP服務(wù)端斷開TCP連接后,電腦TCP服務(wù)端再開監(jiān)聽,CH395
    發(fā)表于 10-14 06:09

    通訊貓MQTT服務(wù)器在線客戶端的問題

    我在網(wǎng)上找一個(gè)通訊貓MQTT服務(wù)器在線客戶端。我有點(diǎn)糊涂,到底是服務(wù)器,還是客戶端??梢赃B上,也可以發(fā)數(shù)據(jù),就是不知道跟誰連。我從上面下了個(gè)
    發(fā)表于 11-19 12:17

    Android 仿QQ客戶端服務(wù)端源碼

    Android 仿QQ客戶端服務(wù)端源碼
    發(fā)表于 03-19 11:23 ?3次下載

    MQTT中服務(wù)端客戶端

    器(broker),它是 MQTT 信息傳輸?shù)臉屑~,負(fù)責(zé)將 MQTT 客戶端發(fā)送來的信息傳遞給 MQTT 客戶端;MQTT 服務(wù)端還負(fù)責(zé)管理
    的頭像 發(fā)表于 07-30 14:55 ?2402次閱讀

    服務(wù)端測試和客戶端測試區(qū)別在哪

    服務(wù)端測試和客戶端測試是軟件開發(fā)過程中的兩個(gè)重要環(huán)節(jié),它們分別針對(duì)服務(wù)器端客戶端的軟件進(jìn)行測試。本文將詳細(xì)介紹服務(wù)端測試和
    的頭像 發(fā)表于 05-30 15:27 ?2089次閱讀

    服務(wù)端測試是web測試嗎為什么

    客戶端請(qǐng)求、執(zhí)行業(yè)務(wù)邏輯、與數(shù)據(jù)庫交互等。服務(wù)端測試的目的是確保服務(wù)器端的軟件組件能夠按照預(yù)期工作,沒有錯(cuò)誤,并且能夠滿足性能要求。 服務(wù)端測試的類型 單元測試 :針對(duì)單個(gè)函數(shù)或模塊進(jìn)
    的頭像 發(fā)表于 05-30 15:30 ?492次閱讀