MQTT客户端搭建( Python 与 命令行)

it2022-05-08  13

命令行客户端

测试工具:树莓派

下载Mosquitto

更新软件源:sudo apt-get  update

下载g++编译器:sudo apt-get install g++

安装:sudo apt-get install libssl-dev

安装:sudo apt-get install uuid-dev

下载客户端文件:http://mosquitto.org/files/source/mosquitto-1.5.tar.gz

也可以直接网页下载:

解压:sudo tar zxfv mosquitto-1.5.tar.gz

进入解压目录:cd mosquitto-1.5

注意:此处不需要一般源码包安装步骤:./configure..........

编译:make

安装:sudo make install

测试:mosquitto -v

 Python客户端

下载python第三方库:

方法1:

使用命令直接安装

pip3 install paho-mqtt

方法2:

通过源码安装

下载:https://github.com/eclipse/paho.mqtt.python

打开:cd paho.mqtt.python安装:python setup.py install

编写实现代码:

运行后会一直等待数据接收

1 import paho.mqtt.client as mqtt 2 import time 3 4 HOST = "服务器IP地址-----" #如 192.168.11.23 5 PORT = 61613#端口号---- 6 7 #MQTT程序入口 8 def client_loop(): 9 client_id = time.strftime('%Y%m%d%H%M%S',time.localtime(time.time()))# ClientId不能重复,所以使用当前时间 10 client = mqtt.Client(client_id) 11 client.username_pw_set("用户名---", "密码---") 12 client.on_connect = on_connect 13 client.on_message = on_message 14 client.connect(HOST, PORT, 60) 15 client.publish("消息号-----", "MQTT start", qos=0, retain=False) # 发布消息 16 client.loop_forever() 17 18 #连接 19 def on_connect(client, userdata, flags, rc): 20 print("Connected with result code "+str(rc)) 21 client.subscribe("消息号------",0)#订阅,参数为(订阅号,Qos值) 22 23 #消息接收,此处会一直阻塞主线程 24 def on_message(client, userdata, msg):#打印订阅消息 25 print(msg.topic+" "+msg.payload.decode("utf-8")) 26 27 #程序主入口 28 if __name__ == '__main__': 29 client_loop()

改进:

实现非阻塞主线程

import threading #在线程函数中调用MQTT程序入口 def run11(varx): client_loop() #创建线程 t1=threading.Thread(target=run11,args=("var1111",)) t1.start()

运行效果:

云端java自编客户端捕获和推送消息:

 


 参考:

https://blog.csdn.net/itas109/article/details/78873257

https://blog.csdn.net/xukai871105/article/details/39255089

转载于:https://www.cnblogs.com/dongxiaodong/p/9678452.html


最新回复(0)