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

如何使用MQTT发送唯一消息?

庄阿苏
2023-03-14

我需要你的帮助。我正在用MQTT创建一个程序,它必须执行写在文件上的命令,并将结果发送到主题。我已经设法在终端上执行命令并打印结果,但是当我必须通过MQTT发送它时,它会创建两条消息,是否可以只发送带有结果的消息?我该怎么办?谢谢,我将放置代码,用于读取执行的命令的结果以及它发送给我的两条消息。

String result;
while ((result=reader.readLine()) != null) {
  System.out.println(result);
  final  MqttTopic timeTopic = client.getTopic(TOPIC);
  timeTopic.publish(new MqttMessage(result.getBytes()));
  System.out.println(" - Published data. Topic: " + timeTopic.getName() + "  Message: " + result);
}

共有1个答案

季凡
2023-03-14

您的代码是一次一行,如果命令输出多行,那么您将发送多条消息。

您需要循环从输出reader.readLine()存储所有结果,然后发布消息。

String line;
String output = "";
while ((line=reader.readLine()) != null) {
  System.out.println(line);
  output += line + "\n";
}
final MqttTopic timeTopic = client.getTopic(TOPIC);
timeTopic.publish(new MqttMessage(line.getBytes()));
System.out.println(" - Published data. Topic: " + timeTopic.getName() + "  Message: " + result);
 类似资料:
  • 我有一个工作的WebSocket示例,其中客户端从服务器接收消息。 我不确定当客户端连接时,我应该如何向客户端发送旧消息。 示例: 每个客户端在连接时提供其名称 服务器响应“[名称] 刚刚连接”(对所有客户端) 任何新客户端都不会收到这些消息 我想知道客户端是否有任何方法可以接收旧消息(所有消息或过去 5 分钟内的消息都可以接受)。 我怀疑我可能需要自己捕获这些信息,将其存储在某个地方(如数据库)

  • 如果这是一个重复的问题,我真的很抱歉,但我在其他线程中尝试了许多答案,但没有一个对我有效。 我试图通过使用TLSv1.2协议的SSLSocket向远程服务器发送ISO8583消息,我用密钥库配置了证书,并试图发送一个ISO8583消息示例:08002220010000800000900000011312115000000180105000003 0800:MTI 222001000800000:二

  • 我下载了HiveMQ,它是一个代理,正在运行: 2018-03-05 19:28:08,195信息-在地址0.0.0.0和端口1883上启动TCP侦听器 现在我想做的是向这个代理或Putty发送类似“Hello World”之类的内容,或者显示整个MQTT有效负载的内容。C是如何处理这个的?这些文档帮助我理解了发生了什么,但并没有真正帮助我编写C代码,因为我对它还是非常陌生。

  • 我想向我的whatsapp收件人发送whatsapp消息,但whatsapp收件人需要通过向您在沙盒中选择的电话号码发送“加入[关键字]”whatsapp消息来选择加入 我想发送消息而不需要发送“加入[关键字]”WhatsApp消息

  • 问题内容: 香港专业教育学院一直从Java发送最简单的电子邮件没有问题,但我现在正尝试发送html如下: 但是,当我在客户端收到它时,它以纯文本电子邮件的形式接收,即它显示所有html标记,而不是用于格式化,并且我已经检查了电子邮件标题,并说 在邮件标题中 但是为什么因为我将“ text / html”传递给setContent()方法,那似乎是您唯一要做的事情。 问题答案: 您可以尝试以下方法:

  • 我们正在使用spring kafka 1.2.2。释放 我们想要的 1.一旦消息被消费并成功处理,就会在spring-kafka中提交偏移量。 我正在使用Manaul Commit/Ac认收它,它工作正常。 2.在任何异常的情况下,我们希望spring-kafka重新发送相同的消息。 我们对任何系统误差抛出RunTime异常,它由spring-kafka记录并且从未提交。 这很好,因为我们不希望它