python 連線mqtt發布和訂閱資訊

2022-06-08 02:30:07 字數 2483 閱讀 8530

pip install paho-mqtt
import paho.mqtt.client as mqtt

import json

import time

host = '127.0.0.1' # mqtt伺服器位址

port = 1883

client_id = '101' # 客戶端id,自己設定

# 同時訂閱多個主題方式使用#萬用字元

# '#'號是萬用字元,訂閱匹配#平級及子級主題的所有主題

# '+'號是單層萬用字元,在主題過濾器的任意層級都可以使用單層萬用字元,包括第乙個和最後乙個層級。然而它必須佔據過濾器的整個層級。可以在主題過濾器中的多個層級中使用它,也可以和多層萬用字元一起使用。

# 訊息服務質量,0最多一次,1最少一次,2只一次

def on_connect(client, userdata, flags, rc):

'''訂閱資訊

:param client: 鏈結

:param userdata:

:param flags:

:param rc:

:return:

'''print('鏈結-----------------------------')

print(f'connected with result code ---鏈結結束-------------')

client.subscribe('data/send')

pass

def on_message(client, userdata, msg):

'''訊息主題

:param client:

:param userdata:

:param msg:

:return:

'''print('資訊-------------------------------')

print(f'主題: 訊息:------資訊結束-------')

pass

def on_subscribe(client, userdata, mid, granted_qos):

'''訊息狀態

:param client:

:param userdata:

:param mid:

:param granted_qos:

:return:

'''print('狀態--------------------------')

print(client)

print(userdata)

print(mid)

print(f'on subscribed: qos = ---------狀態結束--------')

pass

def on_disconnect(client, userdata, rc):

if rc != 0:

print(f'unexpeced disconnection --disconnect')

pass

pass

data =

}param = json.dumps(data)

client = mqtt.client(client_id)

client.username_pw_set("admin", "public")

client.on_connect = on_connect

client.on_message = on_message

client.on_subscribe = on_subscribe

client.on_disconnect = on_disconnect

client.connect(host, port, 60)

client.subscribe("data/send")

client.publish("data/send", payload=param, qos=0) # 傳送訊息

# 發布資訊

基於MQTT的訊息發布訂閱python實現

mqtt 全稱為 message queuing telemetry transport 訊息佇列遙測傳輸 是一種基於發布 訂閱正規化的 輕量級 訊息協議。該協議構建於tcp ip協議上。mqtt協議是輕量 簡單 開放和易於實現的,這些特點使它適用範圍非常廣泛。在很多情況下,包括受限的環境中,如 機...

C 整合MQTT 發布 訂閱

服務端 服務端是乙個控制台應用 using mqttnet using mqttnet.core.adapter using mqttnet.core.diagnostics using mqttnet.core.protocol using mqttnet.core.server using sy...

通過 C 實現 MQTT 的訂閱和發布

第三步 執行 第二部分 單向認證模式 第四步 執行 本章節主要介紹用c 實現mqtt的訂閱和發布。分為 無加密模式 和 單向認證模式。測試環境為本機。準備工作 保持安裝後預設配置即可 visual studio中新建控制台應用程式normalpublisher,新增m2mqtt引用。program類...