Pywebsocket "rooms"或"topic"概念



我正在尝试通过MQTT向某些HTML5页面传递数据的不同方法。

我已经看了Node.jsSocket。IO,这似乎是一个很好的解决方案,因为Socket。IO有一个"房间"概念,可以很容易地转换为MQTT "主题"

我很好奇如果pywebsocket有任何这样的概念,这将允许我使用相同的websockethandler多个页面,而不发送相同的数据到所有的页面。

我已经看了pywebsocket谷歌代码页连同一些例子,但我还没有能够找到任何信息,将允许这种行为。如果有人有更多关于这方面的信息,我将非常高兴:)

虽然我不能给你任何直接的暗示来翻译插座的房间概念。对于MQTT,您可能想看一下mosquito .js,它允许您通过浏览器中的Websockets轻松地建立MQTT连接,其行为与真正的Websockets非常相似。使用这种方法,每个打开的页面都建立到MQTT代理的唯一连接。因此,您甚至可以根据客户端的某些条件订阅不同的主题。

一个小示例代码:

  var mqttSocket = new Mosquitto();
  mqttSocket.onconnect = function(rc){
    console.log("Connection established");
  };
  mqttSocket.ondisconnect = function(rc){ 
    console.log("Connection terminated");
  };
  mqttSocket.onmessage = function(topic, payload, qos){
    console.log("Message received " + topic + ":" + payload);
  }
  mqttSocket.connect("ws://yourserver:8080"); 
  mqttSocket.subscribe('some/topic', 0);

由于对Websocket连接的本地支持尚未在任何MQTT代理中真正实现,因此服务器端需要一小部分软件来桥接Websocket连接到MQTT代理。

mosquito .js的开发人员建议使用Lighttpd web服务器的自定义mod_websocket模块来完成此任务。然而,作为一种替代方案,您可能想尝试WSS,它将任何Websocket连接转换为任意其他TCP端口,开销最小

对于上面的示例,您可以将mqttSocket连接到WSS实例侦听传入连接的地址和端口。然后将WSS配置为将传入的连接转发到您选择的MQTT代理。

免责声明:WSS是由我的一个朋友编写的,专门用于在mosquito .js连接到mosquito . MQTT代理实例的桥接。

我希望这对你有帮助。

相关内容

  • 没有找到相关文章

最新更新