簡體   English   中英

如何使用Python在Paho中每秒增加消息

[英]How to increase messages per second in paho using python

我正在使用Eclipse的paho-mqtt。 我在Raspberry Pi 3 B +以及在Ubuntu 16.04上運行的筆記本電腦上安裝了Paho。 我使用LAN電纜將Raspberry Pi連接到筆記本電腦。 我使用筆記本電腦作為服務器,即使用localhost作為服務器。

我正在從Raspberry Pi發布,並且每秒只能發布大約200條消息。 另一方面,我的筆記本電腦是訂戶,我每秒只能接收大約20-25條消息。 我已經附上了發布者和訂閱者的代碼。 如何發送更多消息?

發布者代碼:

import paho.mqtt.publish as mqtt
import time
import serial

ser = serial.Serial('/dev/ttyACM0', 9600, timeout=1)
time.sleep(2)

a = time.time()
num = 0

while (time.time() - a) < 1.0:
    try:
        data = int(ser.readline())
        mqtt.single("test", data, hostname="10.42.0.1")
        num = num + 1
    except ValueError:
        None

print(num)
ser.close()

訂戶代碼:

import paho.mqtt.subscribe as mqtt
import time

b=0
a = time.time()

while True:
    msg = mqtt.simple("0", hostname="10.42.0.1")
    b=b+1
    print(msg.payload, b)

首先,串行IO速度很慢;

其次,如果您閱讀paho-mqtt的文檔或源代碼,則會發現mqtt.single()為每個函數調用創建一個新的TCP連接,這會影響性能,建議您使用mqtt.Client類來執行工作;

最后,如果Pub的速率確實很重要,那么存在MQTT客戶端的C實現

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM