准备工作
本文测试MQTT的发布/订阅,分为客户端版和python版。
首先我们需要一个MQTT服务器,这里推荐使用EMQ,一步搭建,省去了很多部署的麻烦。
选择Windows版本下载,自己选择目录解压后,进入bin
目录打开cmd,运行emqx start
命令开启服务即可。此时在浏览器地址栏输入: localhost:18083
,输入用户名:admin
,密码:public
进入,可以看到主界面。
Python版本
下载库
cmd
下执行这个命令
编写订阅端
新建一个mqtt_sub.py
文件,编写代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| import paho.mqtt.client as mqtt
HOST = "127.0.0.1" PORT = 1883
def on_connect(client, userdata, flags, rc): print("Connected with result code " + str(rc)) client.subscribe("chat")
def on_message(client, userdata, msg): print(msg.topic + " " + ":" + str(msg.payload))
client = mqtt.Client() client.on_connect = on_connect client.on_message = on_message client.connect(host=HOST, port=PORT, keepalive=600) client.loop_forever()
|
编写发布端
新建一个mqtt_pub.py
文件,编写代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| import paho.mqtt.client as mqtt
HOST = "127.0.0.1" PORT = 1883 mqttClient = mqtt.Client()
def on_mqtt_connect(): mqttClient.connect(host=HOST, port=PORT, keepalive=600) mqttClient.loop_start()
def on_publish(topic, payload, qos): mqttClient.publish(topic, payload, qos)
def on_message_come(client, userdata, msg): print(msg.topic + " " + ":" + str(msg.payload))
def on_subscribe(): mqttClient.subscribe(topic="chat", qos=2) mqttClient.on_message = on_message_come
def main(): on_mqtt_connect() on_publish(topic="chat", payload="Hello Python!", qos=2) on_subscribe() while True: pass
if __name__ == '__main__': main()
|
执行文件
首先运行mqtt_sub.py
,接着,同时运行mqtt_pub.py
,这时候就可以收到自己订阅的消息
至此,Python版本测试成功。完整代码
客户端版本
下载客户端工具
这里推荐MQTT.fx
下载完毕安装后打开界面如下:
配置连接
Extras->Edit Connection Profiles,然后按照下图配置
配置完毕后点击Connect
创建自己的订阅
这边配置完毕,接下来进入刚刚的Dashboard,选择Websocket
先连接
然后发布一个主题为goods的信息
发送后MQTT.fx客户端便会接收到发送的信息
至此,客户端版本测试完毕