我正在尝试在使用MQTT进行消息传递的服务器应用程序和我想实时查看消息并将消息发送回服务器端应用程序的网页之间建立一条"通信线路"。
我在服务器上使用mosquitto,Bottle和gevent,我想让它尽可能简单。使用 gevent,我设法在绿绿地中接收 MQTT 消息,将它们放入队列并将消息发送到 websocket 过程中的网页,如下所示:
while True:
mqt = queue.get(True)
ws.send(mqt)
我还可以像这样将消息从网页发送回服务器和 MQTT(也通过队列):
while True:
msg = ws.receive()
queue2.put(msg)
但是,我希望这两个循环在同一个 websocket 上同时工作。有没有办法将它们结合起来?例如,接收是否有超时?我想我可以使用两个单独的 websocket,但如果我只能用一个来做到这一点,那将是一种浪费。
为什么不直接使用 MQTT 通过 Websockets 将消息传递到页面?有许多代理支持 Websockets,paho JavaScript 客户端允许订阅和发布消息