当前位置: 首页 > 知识库问答 >
问题:

蚊子可以转发一个消息发送者的客户吗?

南宫阳焱
2023-03-14

我正在使用mosquitto MQTT代理。此外,我有多个(目前为10个,但数量还会增加)客户机,它们定期将一些传感器数据发布到主题A。这些客户机在技术上是相同的,但确实有一个唯一的标识符(序列号)。

我还有一个订阅主题a的客户机,以便接收发布的消息并将传感器值持久化到数据库中。我当然需要知道哪个传感器(即客户端)发送了一个特定的值。

作为一种解决方案,可以在每个发布的消息的有效负载中附加一些传感器ID。但是由于传感器通过GSM访问代理,我需要保持低流量,所以我试图避免这种情况。

我对所有客户机都使用paho-mqtt 1.3.1。

共有1个答案

阎鹏
2023-03-14

不,客户端id不是已发布消息的一部分。它仅用于在建立连接时标识代理的客户机,以便确定是否应该遵守存储的消息和持久订阅。

最简单的解决方案是为每个传感器使用单独的主题,但有一个共享的根。例如。

  • 传感器1发布到A/1
  • 传感器2发布到A/2
 类似资料:
  • 问题内容: 这段代码一切正常(将其缩短以便更好地阅读)。 当向服务器发送请求时,服务器会立即响应他。但是,其他客户端看不到响应消息。 因此,我想进一步说明:当客户端向服务器发送请求时,服务器将响应所有客户端,以便所有客户端都能看到消息。 我怎样才能做到这一点?有任何示例或不错的入门教程吗? 提前致谢! 服务器: 问题答案: 您必须使用连接池将消息广播到所有连接。您可以将其用作教程/示例http:/

  • 问题内容: 我只能在用户的套接字ID直接存储在io.sockets.on(’connect’)函数中时向用户发出消息。我不知道为什么在登录后尝试存储其套接字ID时为什么不起作用。 加工: 无法运作: JavaScript客户端代码段 解决方案:感谢@alessioalex, 我不得不从登录页面中删除对socket.io的引用,并将以下内容添加到io.sockets.on(’connection’)

  • 多客服的消息转发绝对是超级的简单,转发的消息类型为 transfer: use EasyWeChat\Kernel\Messages\Transfer; // 转发收到的消息给客服 $app->server->push(function($message) { return new Transfer(); }); $response = $app->server->serve(); 当

  • 根据 http://developer.android.com/google/gcm/client.html http://developer.android.com/google/gcm/server.html 必须实现的第三方应用程序服务器。此应用程序服务器通过所选的GCM连接服务器将数据发送到启用GCM的Android应用程序。 从上面来看,这意味着你不能直接从一个客户端向另一个客户端发送消

  • 如何在聊天客户端发送媒体消息?我使用的是JS SDK,基于教程https://www.twilio.com/docs/api/chat/guides/media-support,但是出现了错误。我使用的方法如下所示: 错误消息:

  • 我正在尝试用redis streams实现一个java应用程序,其中每个consomer只使用一条消息。就像管道/队列一样,每个使用者只接收一条消息,对其进行处理,完成后,使用者接收流中尚未处理的下一条消息。有效的方法是,每条消息只被一个消费者(使用xreadgroup)使用。 我从redislabs开始学习本教程 守则: 我当前的问题是,一个消费者从队列中获取多条消息,在某些情况下,其他消费者正