Python MQTT客戶端實現

2022-04-11 13:40:59 字數 2218 閱讀 8056

使用python package index (pypi)

pip install paho-mqtt
使用virtualenv

virtualenv paho-mqtt

source paho-mqtt/bin/activate

pip install paho-mqtt

或者編譯源**

git clone 

使用原始碼安裝

cd paho.mqtt.python

python setup.py install

# import paho.mqtt.client as mqtt

import paho.mqtt.publish as publish

import time

host = "127.0.0.1"

port = 61613

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

print("connected with result code "+str(rc))

client.subscribe("test")

def on_message(client, userdata, msg):

print(msg.topic+" "+msg.payload.decode("utf-8"))

if __name__ == '__main__':

client_id = time.strftime('%y%m%d%h%m%s',time.localtime(time.time()))

# client = mqtt.client(client_id) # clientid不能重複,所以使用當前時間

# client.username_pw_set("admin", "123456") # 必須設定,否則會返回「connected with result code 4」

# client.on_connect = on_connect

# client.on_message = on_message

# client.connect(host, port, 60)

# client.publish("test", "你好 mqtt", qos=0, retain=false) # 發布訊息

publish.single("test", "你好 mqtt", qos = 1,hostname=host,port=port, client_id=client_id,auth = )

import paho.mqtt.client as mqtt

import time

host = "127.0.0.1"

port = 61613

def client_loop():

client_id = time.strftime('%y%m%d%h%m%s',time.localtime(time.time()))

client = mqtt.client(client_id) # clientid不能重複,所以使用當前時間

client.username_pw_set("admin", "123456") # 必須設定,否則會返回「connected with result code 4」

client.on_connect = on_connect

client.on_message = on_message

client.connect(host, port, 60)

client.loop_forever()

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

print("connected with result code "+str(rc))

client.subscribe("test")

def on_message(client, userdata, msg):

print(msg.topic+" "+msg.payload.decode("utf-8"))

if __name__ == '__main__':

client_loop()

client_id是必須的,並且是唯一的。否則可能會出現如下錯誤:winerror 10054] 遠端主機強迫關閉了乙個現有的連線。

使用tcp select實現客戶端與客戶端的通訊

使用多路復用實現客戶端與客戶端進行通訊 原理 客戶端只要一連上伺服器,立馬給伺服器傳送使用者名稱,然後在服務端將newsocketfd 存放在同乙個結構體中,客戶端先給伺服器傳送資料,然後通過伺服器 給客戶端。伺服器先會查詢對應名字的 newsocketfd 然後向該 newsocketfd 中寫入...

瘦客戶端 胖客戶端 智慧型客戶端

胖客戶端模式將應用程式處理分成了兩部分 由使用者的桌面計算機執行的處理和最適合乙個集中的伺服器執行的處理。乙個典型的胖客戶端包含乙個或多個在使用者的pc上執行的應用程式,使用者可以檢視並運算元據 處理一些或所有的業務規則 同時提供乙個豐富的使用者介面做出響應。伺服器負責管理對資料的訪問並負責執行一些...

實現UDP客戶端

實現udp客戶端 1 基於連線和無連線 2 對系統資源的要求 tcp多,udp少 3 udp程式結構較簡單 4 流模式與資料報模式 5 tcp保證資料準確性,udp可能丟包,tcp保證資料順序,udp不保證 import socket if name main 1.建立udp客戶端,建立套接字 ud...