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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

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

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

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

圖片

在以上圖示中一共有三個 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)系本站處理。 舉報投訴
  • 物聯(lián)網

    關注

    2894

    文章

    43301

    瀏覽量

    366382
  • 客戶端
    +關注

    關注

    1

    文章

    287

    瀏覽量

    16604
  • 服務端
    +關注

    關注

    0

    文章

    66

    瀏覽量

    6947
收藏 人收藏

    評論

    相關推薦

    Linux網絡編程-TCP客戶端如何獲取要連接的服務端IP?

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

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

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

    TCP多客戶端和單服務端之間通信問題

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

    TCP服務端的實現

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

    如何在Lwip做服務端應用時實現多個客戶端連接?

    請問Lwip做服務端應用時,怎么實現多個客戶端同時連接它(帶操作系統(tǒng))!??!請大家指點一下!
    發(fā)表于 11-11 01:06

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

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

    TCP通信時服務端如何接收客戶端的數據?

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

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

    LabVIEW 做TCP服務端因為要連接四個客戶端假如有四個客戶端分別是1號 2號 3號 4號,這四個客戶端分開單獨控制,每次連接
    發(fā)表于 05-29 16:48

    監(jiān)控系統(tǒng)客戶端服務端設計

    詳情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作為TCP客戶端,連接電腦TCP服務端的時間很長怎么解決?

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

    通訊貓MQTT服務器在線客戶端的問題

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

    Android 仿QQ客戶端服務端源碼

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

    MQTT中服務端客戶端

    器(broker),它是 MQTT 信息傳輸的樞紐,負責將 MQTT 客戶端發(fā)送來的信息傳遞給 MQTT 客戶端;MQTT 服務端還負責管理
    的頭像 發(fā)表于 07-30 14:55 ?2230次閱讀

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

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

    服務端測試是web測試嗎為什么

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