1.ubuntu安装库
# 安装python包
pip3 install -i https://pypi.doubanio.com/simple paho-mqtt
# 在香橙派上安装 mosquitto ,mqtt服务器(用的是ubuntu22.04)
sudo apt-get install mosquitto
# 查看运行状态
sudo service mosquitto status
# 开启服务(后台运行)
sudo service mosquitto start
# 停止服务
sudo service mosquitto stop
# 调试模式运行
mosquitto -c mosquitto.conf,会输出日志
2.mosquitto的使用
配置文件:
拷贝模板配置文件:
cd /usr/share/doc/mosquitto/examples
拷贝到如下目录:
cd /etc/mosquitto/conf.d
修改:
sudo vim mosquitto.conf
修改内容:
port 1883
listener 1884
listener 1885 # 多端口监听,根据需要
allow_anonymous true # 允许匿名登录:
- 问题:非本地客户端链接不成功,修改配置
- 问题:修改端口,修改配置
3.paho-mqtt使用
"""
mqtt客户端实现
订阅监听数据
"""
import paho.mqtt.client as mqtt
# 链接上服务器之后调用的函数
def on_connect(client, userdata, flags, rc):
print("Connected with result code "+str(rc))
client.subscribe(topic="test") # 订阅test主题
client.publish("test", "123456", qos=0, retain=False) # 发送消息
# 订阅的主题接收到消息后调用的函数
def on_message(client, userdata, msg):
print(msg.topic+" "+str(msg.payload))
def mqtt_test01():
client = mqtt.Client() # 实例化对象
# 定义回调函数
client.on_connect = on_connect
client.on_message = on_message
# 输入链接的对象
client.connect("192.168.1.12", 1883, 60)
# 循环监听
client.loop_forever()
if __name__ == '__main__':
mqtt_test01()