我正在使用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)
答案 0 :(得分:1)
首先,串行IO速度很慢;
其次,如果您阅读paho-mqtt的文档或源代码,您会发现mqtt.single()为每个函数调用创建一个新的TCP连接,这会影响性能,建议您使用mqtt.Client类做这项工作;
最后,如果Pub的比率确实很重要,则存在一个C实现 MQTT client