python

超轻量级php框架startmvc

python mqtt 客户端的实现代码实例

更新时间:2020-08-01 03:24:01 作者:startmvc
这篇文章主要介绍了pythonmqtt客户端代码实例,文中通过示例代码介绍的非常详细,对大家的

这篇文章主要介绍了python mqtt 客户端代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

安装paho-mqtt


pip install paho-mqtt -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

python消息收发实现


import paho.mqtt.client as mqtt
from multiprocessing import Process
import camera_person_num

MQTTHOST = "172.19.4.4"
MQTTPORT = 1883
mqttClient = mqtt.Client()

# 连接MQTT服务器
def on_mqtt_connect():
 mqttClient.connect(MQTTHOST, MQTTPORT, 60)
 mqttClient.loop_start()

# 消息处理函数
def on_message_come(lient, userdata, msg):
 print(msg.topic + ":" + str(msg.payload.decode("utf-8")))
 # 消息处理开启多进程
 p = Process(target=talk, args=("/camera/person/num/result", msg.payload.decode("utf-8")))
 p.start()

# subscribe 消息订阅
def on_subscribe():
 mqttClient.subscribe("test", 1) # 主题为"test"
 mqttClient.on_message = on_message_come # 消息到来处理函数
# publish 消息发布
def on_publish(topic, msg, qos):
 mqttClient.publish(topic, msg, qos);

# 多进程中发布消息需要重新初始化mqttClient
def talk(topic, msg):
 cameraPsersonNum = camera_person_num.CameraPsersonNum(msg)
 t_max, t_mean = cameraPsersonNum.personNum()
 mqttClient = mqtt.Client()
 mqttClient.connect(MQTTHOST, MQTTPORT, 60)
 mqttClient.loop_start()
 mqttClient.publish(topic, '{"max":' + str(t_max) + ',"mean:"' + str(t_mean) + '}', 1)

def main():
 on_mqtt_connect()
 on_subscribe()
 while True:
 pass
if __name__ == '__main__':
 main()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python mqtt 客户端