1. 程式人生 > 程式設計 >python mqtt 客戶端的實現程式碼例項

python mqtt 客戶端的實現程式碼例項

這篇文章主要介紹了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,qos);
# 多程序中釋出訊息需要重新初始化mqttClient
def talk(topic,msg):
  cameraPsersonNum = camera_person_num.CameraPsersonNum(msg)
  t_max,t_mean = cameraPsersonNum.personNum()
  mqttClient = mqtt.Client()
  mqttClient.connect(MQTTHOST,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()

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。