一、安装MQTT服务器和客户端
MQTT服务器下载链接:https://mosquitto.org/download
MQTT客户端下载链接:http://www.eclipse.org/paho/components/tool/
服务器搭建需要Apollo环境(下载链接:http://archive.apache.org/dist/activemq/activemq-apollo/1.7.1/)
选择Windows版本。
具体安装配置过程请看windows 环境下搭建MQTT服务器(详细)
补充:
第一次搭建好MQTT服务器,没有设置用户密码,在登录时,Username=admin, Password=password
登录成功后的界面是这样的
二、进行消息发布与订阅
打开客户端paho,创建连接,输入tcp端口号
输入用户名和密码
连接成功后,服务器显示如下内容
用lu客户端订阅test主题
用luy客户端发布test主题
luy客户端发布主题后,lu客户端接收到test主题
三、基于Python编写MQTT客户端
(一)编写发布消息客户端
import time
import sys
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
def on_subscribe(client, userdata, mid, granted_qos):
print("消息发送成功")
client = mqtt.Client(protocol=3)
client.username_pw_set("admin", "password")
client.on_connect = on_connect
client.on_subscribe = on_subscribe
client.connect(host="192.168.43.30", port=61613, keepalive=60) # 订阅频道
time.sleep(1)
i = 0
while True:
sensor_data = input("请输入要发表的消息内容(0表示退出): ")
if sensor_data == '0':
break
try:
client.publish(topic="weather", payload=sensor_data, qos=0)
time.sleep(5)
# i += 1
except KeyboardInterrupt:
print("EXIT")
client.disconnect()
sys.exit(0)
(二)编写订阅消息客户端
import time
import paho.mqtt.client as mqtt
def on_connect(client, userdata, flags, rc):
if rc == 0:
print("连接成功")
print("Connected with result code " + str(rc))
def on_message(client, userdata, msg):
print(msg.topic + " " + str(msg.payload))
client = mqtt.Client(protocol=3)
client.username_pw_set("admin", "password")
client.on_connect = on_connect
client.on_message = on_message
client.connect(host="192.168.43.30", port=61613, keepalive=60) # 订阅频道
time.sleep(1)
# client.subscribe("public")
client.subscribe([("weather", 0), ("weather", 2)])
client.loop_forever()
(三)实现结果
在发布消息客户端里输入要发布的内容
在订阅消息客户端里就能接收到这个主题的内容