0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

服务端如何控制客户端之间的信息通讯

麦辣鸡腿堡 来源:嵌入式Linux系统开发 作者:嵌入式Linux系统开 2023-07-30 15:10 次阅读

服务端如何通过“主题”来控制客户端之间的信息通讯,看下图实例:

图片

在以上图示中一共有三个 MQTT 客户端,它们分别是开发板、手机电脑。MQTT 服务端在管理 MQTT通信时使用了“主题”来对信息进行管理。

比如上图所示,假设我们需要利用手机和电脑获取开发板在运行过程中 SoC 芯片的温度,那么首先电脑和手机这两个客户端需要向 MQTT服务器订阅主题“芯片温度”;接下来,当开发板客户端向服务端的“芯片温度”主题发布信息(假设信息的内容就是当前的温度值)后,服务端就会首先检查都有哪些客户端订阅了“芯片温度”这一主题的信息,而当它发现订阅了该主题的客户端有一个手机和一个电脑,于是服务端就会将刚刚收到的“芯片温度”信息转发给订阅了该主题的手机和电脑客户端。

通过以上的这种实例,手机和电脑便可以获取到开发板运行时 SoC 芯片的温度值。

以上实例中,开发板是“芯片温度”主题的发布者,而手机和电脑则是该主题的订阅者。

值得注意的是,MQTT 客户端在通信时,角色往往不是单一的,一个客户端既可以作为信息发布者也 可以同时作为信息订阅者。如下图所示:

图片

上图中的所有客户端都是围绕“LED 控制”这一主题进行通信。此时,对于“LED 控制”这一主题来 说,手机和电脑客户端成为了 MQTT信息的发布者而开发板则成为了 MQTT 信息的订阅者(接收者)。

所以由此可知,针对不同的主题,MQTT 客户端可以切换自己的角色,它们可能对主题 A 来说是信息发布者,但是对于主题 B 就成了信息订阅者,所以一个MQTT 客户端它的角色并不是固定的,所以大家一定要理解“主题”这个概念。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 物联网
    +关注

    关注

    2868

    文章

    41622

    浏览量

    358363
  • 客户端
    +关注

    关注

    1

    文章

    282

    浏览量

    16339
  • 服务端
    +关注

    关注

    0

    文章

    61

    浏览量

    6871
收藏 人收藏

    评论

    相关推荐

    TCP服务端测试工具

    本帖最后由 小子个 于 2024-3-20 22:58 编辑 该TCP服务端工具可以理解为 “TCP服务端” 或者 “服务器” ,目的是帮助大家在没有服务器的情况下,完成
    发表于 06-29 09:22

    如何能使服务器向所有客户端信息并且能接收全部的信息

    同时发送数据。但是现在遇到问题,服务端不能接收到所有连接的客户端向其发送的数据,只能收到最后一个连接的客户端服务端发送的数据,其他的客户端
    发表于 11-09 14:20

    俩台电脑进行TCP连接时,服务端崩溃

    在同一台电脑上可以正常使用。俩台电脑之间就不行了。运行服务端客户端,几秒种后服务端就自行崩溃了。(不是停止运行,是整个labview崩溃)。XP和win7,WIN7和win7的都试过
    发表于 10-28 22:52

    TCP多客户端和单服务端之间通信问题

    假如有多个客户端同时连接到服务端,怎么知道是哪个客户端传输数据过来,是有事件还是一个个轮询过去呢
    发表于 12-22 21:25

    TCP服务端的实现

    Swoole TCP服务端客户端 持续更新
    发表于 09-26 16:04

    如何在Lwip做服务端应用时实现多个客户端连接?

    请问Lwip做服务端应用时,怎么实现多个客户端同时连接它(带操作系统)!!!请大家指点一下!
    发表于 11-11 01:06

    【求助】W5500UDP组播,客户端服务端区分?以及接收怎么加入组播组?

    本人学生,最近的项目用到STM32+W5500的开发板,需要用W5500完成UDP组播功能,目前有以下两个问题,求各位大神帮忙解答一下:1、UDP组播中客户端服务端怎么区分,比如电脑给开发板发消息
    发表于 04-03 16:47

    TCP通信时服务端如何接收客户端的数据?

    毕设采用的是TCP协议,组员做的是下位机,C编程,WiFi模块工作处于客户端。我负责上位机,Labview使用tcp协议时服务端怎么接收客户端的数据呢? 我找到的例程都是服务端发、
    发表于 04-14 14:49

    LabVIEW 做TCP服务端怎么把多个客户端区分开

    LabVIEW 做TCP服务端因为要连接四个客户端假如有四个客户端分别是1号 2号 3号 4号,这四个客户端分开单独控制,每次连接
    发表于 05-29 16:48

    监控系统客户端服务端设计

    详情2.1.2 数据库接口及实现2.1.2.1 用户注册2.1.2.2 用户查询2.2 监控系统客户端服务端设计2.2.1 `CS`模型2.2.2 功能2.2.2 服务机与客户机交互
    发表于 12-21 07:02

    Labview TCP服务器和多个客户端问题

    我开启一个Labview TCP服务器,与外部两个TCP客户端连接,两个客户端会定时给服务端发送数据。我现在大致框架是,分两个while循环分别处理两个
    发表于 04-13 18:43

    CH395作为TCP客户端,连接电脑TCP服务端的时间很长怎么解决?

    ,CH395客户端再去连接,这时需要时间很长2分钟左右 。如果CH395不回送通讯数据,在电脑TCP服务端断开TCP连接后,电脑TCP服务端再开监听,CH395
    发表于 10-14 06:09

    通讯猫MQTT服务器在线客户端的问题

    我在网上找一个通讯猫MQTT服务器在线客户端。我有点糊涂,到底是服务器,还是客户端。可以连上,也可以发数据,就是不知道跟谁连。我从上面下了个
    发表于 11-19 12:17

    当WiFi信号变低时,服务器和客户端之间的TCP通信丢失,如何使客户端重新连接?

    大家好, 当 WiFi 信号变低时,服务器和客户端之间的 TCP 通信丢失,比如超过 -80dBm。一旦客户端断开连接,它就无法重新连接并正常进行通信。如何让
    发表于 05-15 07:31

    MQTT中服务端客户端

    器(broker),它是 MQTT 信息传输的枢纽,负责将 MQTT 客户端发送来的信息传递给 MQTT 客户端;MQTT 服务端还负责管理
    的头像 发表于 07-30 14:55 1611次阅读