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類...