【发布时间】:2021-08-14 21:44:58
【问题描述】:
背景:
- 我是 MQTT 新手,目前正在做一个项目,我需要通过适配器将 Android 设备连接到 PC。
- 计划使用 MQTT 协议连接它们,实现 MQTT 客户端并使用开源 MQTT 代理。
我的问题:
对 MQTT 代理有什么建议吗?我找到了mosquitto 和moquette。虽然第二个二进制监听器的下载链接已经死了。
- 是否有任何示例项目使用 USBC -> 以太网用于 MQTT 客户端和 MQTT 代理? (最好在Java中,因为这应该是 在 Android 设备上使用)
- 我在网上找到的所有示例都使用 URL 来订阅和发布主题,我假设它们依赖于 Internet/网络连接。我想知道如果组件应该通过 usbc-ethernet 连接,流程将如何?是否需要使用以下示例中的任何包装器,其中本地主机 url 用于在 MQTT 代理和 MQTT 客户端之间进行通信(借用以下示例 git-repository)。
使用 localhost 进行连接的示例实现:
//publish
MqttClient client = new MqttClient("tcp://localhost:1883", MqttClient.generateClientId());
client.connect(); MqttMessage message = new MqttMessage();
message.setPayload(messageString.getBytes());
client.publish("iot_data", message);
System.out.println("\tMessage '"+ messageString +"' to 'iot_data'");
client.disconnect();
//subscribe
MqttClient client=new MqttClient("tcp://localhost:1883", MqttClient.generateClientId());
client.setCallback( new SimpleMqttCallBack() );
client.connect();
client.subscribe("iot_data");
【问题讨论】:
-
对于您的第一个问题,我与emqx.io 合作过,它在性能和易用性方面都很完美。关于你的第二个问题,我不太清楚,但是 MQTT 是一种网络协议(通过 TCP/IP 运行),类似于 HTTP。
-
@khesam109 谢谢,我会试试 emqx.io。但不确定它是否在 Erlang 中实现是否重要。我认为使用 Java 实现的可能更灵活。同样关于第二个问题,我假设通过使用 USB 以太网电缆将 Android 设备连接到 PC,Android 设备应该获得一个 IP 地址,并且我可以将它用作我的端点。但目前还不确定,因为我还没有物理设备。
标签: java android usb mqtt ethernet