python mqtt 客户端实现
2024-09-04 02:03:33
安装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()
最新文章
- Sequence Project Showplan Operator 序列映射运算符
- ++i vs i++
- Focus, w/o disturbance
- 在chrome console加入jquery库
- POJ 3150 Cellular Automaton --矩阵快速幂及优化
- Cent OS 6.6 下安装mysql(5.5.20)和 PHP(5.3.10)
- 车牌识别LPR(四)-- 车牌定位
- LeetCode Power of Two (2的幂)
- BZOJ_1270_雷涛的小猫_(动态规划)
- block的用法和循环引用
- sql大小转换函数
- Delphi遍历文件夹及子文件夹(可查找固定格式文件)
- 【swoole】如果使用好定时器功能
- C# 实体转为json字符串
- 忘记时间戳的存在——Yii2超实用的自动更新时间戳的Behavior(改进版)
- 几种解决方法:idea 找不到符号或找不到包
- MapServer Tutorial——MapServer7.2.1教程学习(大纲)
- jquery操作节点
- [LeetCode&;Python] Problem 169. Majority Element
- 编译libmad库