要在 MQTT 和 Websocket 转发实时消息,比如客户端通过 MQTT 发送的消息,要实时通过 Websocket 发送到网页。要考虑并发,请教一下有没有好的设计思路。
1
BingoXuan 2020-01-06 12:12:51 +08:00 1
|
2
afirefish OP @BingoXuan 感谢大佬回复,可能是我表述有问题。应用场景是物联网设备通过 mqtt 协议连接并发送数据到服务器,然后服务器转发数据到 web 端(通过 websocket )。这个中间转发过程没有好的思路
|
3
BingoXuan 2020-01-06 16:56:39 +08:00
不是啊,你并不需要自己做转发。文中已经有很详细的解释了,这个服务器直接用 Mosquitto 就好了。MQTT 实际还是个消息队列规范,任何客户端实现这个规范后,就可以通过消息队列服务器订阅其他生产者的信息和发布给其他消费者。
1: PC 先通过 websocket 协议和 mosquitto 建立连接,同时订阅主题 A. 2: IOT 设备通过 MQTT 协议和 mosquitto 建立连接。 3: IOT 设备发布主题 A 4: mosquitto 将主题 A 发布到它所有的客户端(无论协议是 MQTT 还是 Websocket ),包括 websocket 客户端,所以 PC 也能收到主题 所以你需要做的是如何分配生产者和消费者。或者你可以考虑使用 HiveMQ,感觉更加简单[官方 demo http://www.hivemq.com/demos/websocket-client/] |