MQTT客户端搭建( Python 与 命令行)
命令行客户端
测试工具:树莓派
下载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