准备工作
本文测试MQTT的发布/订阅,分为客户端版和python版。
首先我们需要一个MQTT服务器,这里推荐使用EMQ,一步搭建,省去了很多部署的麻烦。
选择Windows版本下载,自己选择目录解压后,进入bin
目录打开cmd,运行emqx start
命令开启服务即可。此时在浏览器地址栏输入: localhost:18083
,输入用户名:admin
,密码:public
进入,可以看到主界面。
Python版本
下载库
cmd
下执行这个命令
pip install paho-mqtt
编写订阅端
新建一个mqtt_sub.py
文件,编写代码如下:
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
文件,编写代码如下:
import paho.mqtt.client as mqtt
HOST = "127.0.0.1"
PORT = 1883
mqttClient = mqtt.Client()
# 连接MQTT服务器
def on_mqtt_connect():
mqttClient.connect(host=HOST, port=PORT, keepalive=600)
mqttClient.loop_start()
# publish 消息
def on_publish(topic, payload, qos):
mqttClient.publish(topic, payload, qos)
# 消息处理函数
def on_message_come(client, userdata, msg):
print(msg.topic + " " + ":" + str(msg.payload))
# subscribe 消息
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客户端便会接收到发送的信息
至此,客户端版本测试完毕
网友评论