Mqtt 客户端如何知道另一个客户端是否已连接

2024-01-02

大家好,我的问题是我需要保持设备(客户端)的状态,因为它们是否在线。

我通过客户端 ID 进行连接,通过订阅主题,我可以知道设备已断开连接,但如果它们再次连接,我如何检查它们是否再次连接。


简而言之,你不需要(在协议级别)。

发布者和订阅者完全不知道彼此,消息被发送到主题而不是特定的订阅客户端。

稍长的版本:

您可以使用保留的消息和 LWT(Last Will & Testament)做一些事情

e.g.

每个客户端向以下主题发布一条保留消息

online/<clientID>

有效负载为true当它连接时。它还设置了 LWT,将发布有效负载false如果客户端因网络故障而断开连接。如果客户端完全断开连接,则需要发布false有效负载作为离线前的最后一个操作。

要判断客户端是否在线,您订阅了通配符主题online/+然后检查主题的最后一段的 clientid 和状态的有效负载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mqtt 客户端如何知道另一个客户端是否已连接 的相关文章

随机推荐

  • 许多等待异步方法,还是单个等待包装 Task.Run?

    假设我们必须通过异步流程在数据库中写入包含 1000 个元素的列表 是等待 1000 次异步插入语句更好 还是将所有 1000 次插入包装在封装到一个同步方法中 Task Run声明 等待一次 例如 SqlCommand每种方法都与他的方法
  • 空引用检查的良好做法是什么? [复制]

    这个问题在这里已经有答案了 检查对象上的空引用的最有效方法是什么 我见过各种代码示例 它们具有不同的检查方式 因此以下哪一种是最有效的 或者哪一种被认为是最佳实践 Object ReferenceEquals item null item
  • 无法使用 StringLiteralConvertible 类型的参数列表调用“init”

    当我尝试运行下面的代码时 出现此错误 Cannot invoke init with argument list of type id StringLiteralConvertible host Contact target Contact
  • 我如何从 C++ 的子 c-tor 中初始化超类参数?

    观看以下示例 class A public A int param1 int param2 int param3 class B public A public B m param1 1 m param 2 m param 3 A m pa
  • Rails 5.1,图表显示多种货币的总和

    我遇到了一个关于图表踢的小问题 我有一个铁路应用程序 您可以在其中创建不同的货币 然后 您可以创建包含标题 金额的费用 并从列表和 user id 中选择货币 这种关系已经建立并且正在发挥作用 我的用户控制器中有这样的东西 user spe
  • 具有多个参数的 JPA Criteria API

    我需要创建一个使用带有多个参数的 JPA Criteria API 的搜索方法 现在的问题是并不是每个参数都是必需的 因此有些可能为空 并且它们不应包含在查询中 我已经用 CriteriaBuilder 尝试过此操作 但我不知道如何使其工作
  • 针对匿名对象的 System.Text.Json 序列化

    我正在开发一个 ASP Net Core 3 1 应用程序 使用 2 2 从另一个应用程序移植部分代码 到目前为止 我想从 NewtonSoft JSON 序列化库切换到新的 System Text Json 但遇到了一些麻烦 考虑一个使用
  • 将控制台输出定向到 Windows 窗体中的文本框的好方法是什么?

    在 C 中 将控制台输出定向到 Windows 窗体中的文本框的好方法是什么 如果我有一个包含 console WriteLine 的现有程序 我是否需要重载 Windows 窗体文本框中的函数 创建一个写入文本框的文本编写器 public
  • 描述符可以分配给实例属性而不是类属性吗?

    我正在研究 Python 描述符 到目前为止 我在 Google 上找到的所有示例都仅分配描述符对象的类属性 是否应该始终将描述符分配给类属性 描述符可以分配给实例属性吗 如果是这样 有什么例子或用例吗 例如 所有的例子都是这样的 gt g
  • Android:基于速度的 ViewPager 滚动

    ViewPager 现在的滚动方式是每个手势滚动一个项目 无论是全屏快速滑动还是慢速拖动 它对滑动手势的处理方式都是相同的 在最后一页仅前进一步 是否有任何项目或示例会添加基于速度的滑动 根据现有滑动的速度滚动多个项目 如果仍在进行中 并且
  • Matlab中散点数据的双三次插值

    我想知道是否有一种方法可以对分散的数据集 2d 进行双三次插值 我做了一些在线搜索 发现双三次补丁 不确定这些是什么 需要安装在分散的数据上 不知道如何从这里继续 任何帮助将不胜感激 注意 据我了解 Matlab 推荐TriScattere
  • Rx - 取消订阅事件

    我有一个 INotifyPropertyChanged 对象 Foo 我使用 Rx 的 FromEvent 方法将 Foo 转换为可观察的事件流 var myFoo new Foo var eventStream Observable Fr
  • Kubernetes - 更新后旧 Pod 未被删除

    我正在使用 Deployments 来控制 K8S 集群中的 pod 我的原始部署文件如下所示 apiVersion extensions v1beta1 kind Deployment metadata name websocket ba
  • pandas DataFrame 的矢量化更新?

    我有一个数据框 我想用数组中的一些值更新列 然而 该数组与数据帧的长度不同 但我有要更新的数据帧的行的索引 我可以通过循环遍历行 如下 来完成此操作 但我希望有一种更有效的方法可以通过矢量化方法来完成此操作 但我似乎无法获得正确的语法 在下
  • 如何使用 Visual C++/PCSC 以编程方式加载 Java 卡小程序(.cap 文件)

    我目前正在进行的一个项目需要我将 JavaCard 应用程序 Applet cap 文件加载到 JavaCard 我们的框架基于Visual C 和PCSC 因此我们需要将相同的小程序加载到一系列JavaCard上 有谁知道如何处理这个问题
  • 底图子图出现问题

    我需要制作一个包含 n 个底图子图的图 但是当我这样做时 所有值都绘制在第一个子图上 我的数据是一组 n 矩阵 存储在data all f map plt subplots n sharex True sharey True figsize
  • 如何将图像制作成 HTML 中的链接? [复制]

    这个问题在这里已经有答案了 我想制作一个图像 这样当你点击它时 它就会带你去某个地方 这个的编码是什么 将 img 标签包裹在锚标签中 a href someurl img src someImage a
  • 我如何在 Perl 中读取 STDIN?

    我通过管道传输了几个脚本的输出 其中一个脚本输出整个 HTML 页面 并由我的 perl 脚本处理 我希望能够将整个 58K 文本提取到 perl 脚本中 当然 其中将包含换行符 我认为这可能有效 open my TTY lt dev tt
  • 我可以知道 unix 中 scp 命令的退出状态吗

    使用 scp 命令在 perl 中进行编程时 我坚持面对 scp 命令的退出状态如果你告诉我哪个退出值 0 成功 1 错误除外 是为了我的生活会很简单 From here http support attachmate com techdo
  • Mqtt 客户端如何知道另一个客户端是否已连接

    大家好 我的问题是我需要保持设备 客户端 的状态 因为它们是否在线 我通过客户端 ID 进行连接 通过订阅主题 我可以知道设备已断开连接 但如果它们再次连接 我如何检查它们是否再次连接 简而言之 你不需要 在协议级别 发布者和订阅者完全不知