MQTT協議實踐

2021-10-13 09:59:47 字數 2885 閱讀 6113

補充:

第一次搭建好mqtt伺服器,沒有設定使用者密碼,在登入時,username=admin, password=password

登入成功後的介面是這樣的

開啟客戶端paho,建立連線,輸入tcp埠號

輸入使用者名稱和密碼

連線成功後,伺服器顯示如下內容

用lu客戶端訂閱test主題

用luy客戶端發布test主題

luy客戶端發布主題後,lu客戶端接收到test主題

("訊息傳送成功"

)client = mqtt.

client

(protocol=3)

client.

username_pw_set

("admin"

,"password"

)client.on_connect = on_connect

client.on_subscribe = on_subscribe

client.

connect

(host=

"192.168.43.30"

, port=

61613

, keepalive=

60) # 訂閱頻道

time.

sleep(1

)i =

0while true:

sensor_data =

input

("請輸入要發表的訊息內容(0表示退出): "

)if sensor_data ==

'0':

break

try:

client.

publish

(topic=

"weather"

, payload=sensor_data, qos=0)

time.

sleep(5

)# i += 1

except keyboardinterrupt:

print

("exit"

) client.

disconnect()

sys.

exit(0

)

import time

import paho.mqtt.client as mqtt

def on_connect

(client, userdata, flags, rc)

:if rc ==0:

print

("連線成功"

)print

("connected with result code "

+str

(rc)

)def on_message

(client, userdata, msg)

:print

(msg.topic +

" "+

str(msg.payload)

)client = mqtt.

client

(protocol=3)

client.

username_pw_set

("admin"

,"password"

)client.on_connect = on_connect

client.on_message = on_message

client.

connect

(host=

"192.168.43.30"

, port=

61613

, keepalive=

60) # 訂閱頻道

time.

sleep(1

)# client.subscribe("public")

client.

subscribe([

("weather",0

),("weather",2

)])client.

loop_forever

()

在發布訊息客戶端裡輸入要發布的內容

在訂閱訊息客戶端裡就能接收到這個主題的內容

MQTT協議 MQTT協議簡介

mqtt messagequeuing telemetry transport,訊息佇列遙測傳輸 是ibm開發的乙個即時通訊協議。mqtt是面向m2m和物聯網的連線協議,採用輕量級發布和訂閱訊息傳輸機制。它的設計思想是輕巧 開放 簡單 規範,因此易於實現。這些特點使得它對很多場景來說都是很好的選擇,...

MQTT協議 MQTT協議解析

協議就是通訊雙方的乙個約定,即,表示第1位傳輸的什麼 第2位傳輸的什麼 在mqtt協議中,乙個mqtt資料報由 固定頭 fixed header 可變頭 variable header 訊息體 payload 三部分構成。mqtt 資料報結構 固定頭存在於所有mqtt資料報中,其結構如下 bit76...

MQTT協議 MQTT協議簡介及協議原理

mqtt message queuing telemetry transport,訊息佇列遙測傳輸協議 是一種基於發布 訂閱 publish subscribe 模式的 輕量級 通訊協議,該協議構建於tcp ip協議上,由ibm在1999年發布。mqtt最大優點在於,可以以極少的 和有限的頻寬,為連...