【问题标题】:Send MQTT message from the android client to all the clients through MQTT broker通过 MQTT 代理从 android 客户端向所有客户端发送 MQTT 消息
【发布时间】:2020-06-24 15:46:04
【问题描述】:

我需要 MQTT 代理将收到的 MQTT 消息从 Android 客户端发布到所有其他客户端,因此在消息正文中添加了 mosquitto pub 命令。

publish(client,"mosquitto_pub -h 192.34.63.138 -t fromApp -m "Turn" -d ");

“无法解析符号“转动”和 ; 或 ) 预期的错误。

更新

我后来理解正确。我实际上需要将来自 android 客户端的 MQTT 消息发送到所有其他客户端,所以我认为在消息正文中包含 publish 关键字,这是非常错误的。如果客户端订阅了该主题,MQTT 本身会将接收到的消息发送给所有提供的客户端。希望对其他读者有所帮助。

【问题讨论】:

    标签: android-studio mqtt mosquitto paho


    【解决方案1】:

    您的方法存在许多问题。

    首先,编译时错误是因为您将" 嵌套在一个字符串中(由" 绑定。为此,您需要使用\ 转义",如下所示:

    "mosquitto_pub -h 192.34.63.138 -t fromApp -m \"Turn\" -d "
    

    第二个问题更重要。 MQTT 并没有像您期望的那样工作。

    您无需向代理发送命令以使其执行,而是将消息从一个客户端发布到主题,然后代理将该消息传递给已订阅该主题的所有客户端。因此,在这种情况下,您只需将带有有效负载Turn 的消息发布到主题fromApp。看起来像:

    MqttMessage message = new MqttMessage("Turn".getBytes());
    sampleClient.publish("fromApp", message);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-24
      • 2019-04-29
      • 2021-05-07
      • 2022-08-21
      • 1970-01-01
      相关资源
      最近更新 更多