如何使用python在paho中每秒增加消息

问题描述 投票:0回答:1

我正在使用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)
python mqtt paho
1个回答
1
投票

首先,串行IO很慢;

其次,如果您阅读了paho-mqtt的文档或来源,您会发现mqtt.single()为每个函数调用创建一个新的TCP连接,这会损害性能,我建议您使用mqtt.Client类来执行工作;

最后,如果Pub的比率确实很重要,那么就存在MQTT client的C实现

© www.soinside.com 2019 - 2024. All rights reserved.