Paho MQTT 模块几天前引入了 websocket 支持。我认为它还没有发布,但是你可以使用以下命令从 Linux 分支下的 master 安装
pip install git+git://github.com/eclipse/paho.mqtt.python.git
在windows下也可以工作。 (感谢评论中提供的信息)
您可以通过连接使用 websockets 作为传输
mqttc = mqtt.Client(transport="websockets")
UPDATE:
如果您尝试在 python 客户端中使用 websocket 协议,因为您还需要连接浏览器客户端(例如 MQTT.js),那么您还可以配置 mosquitto 来监听网络套接字和正常的MQTT协议.
只需创建一个配置文件,例如
/etc/mosquitto/mosquitto.conf
包含以下内容:
listener 1883
protocol mqtt
listener 9001
protocol websockets
然后你就可以运行 mosquitto
mosquitto -c /etc/mosquitto/mosquitto.conf
您应该看到类似的输出:
1469015320: mosquitto version 1.4.8 (build date 2016-05-3112:07:40+0200) starting
1469015320: Config loaded from /etc/mosquitto/mosquitto1.conf.
1469015320: Opening ipv4 listen socket on port 1883.
1469015320: Opening ipv6 listen socket on port 1883.
1469015320: Opening websockets listen socket on port 9001.
然后,您的 python 客户端连接到端口 1883,浏览器客户端连接到 9001
您可以使用What-mqtt 浏览器客户端 http://mitsuruog.github.io/what-mqtt/测试 websocket 侦听器。只需将其指向ws://localhost:9001