>

이클립스에서 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)

  • 답변 # 1

    먼저 직렬 IO가 느립니다;

    두 번째로, paho-mqtt의 문서 또는 소스를 읽으면 mqtt.single ()이 각 함수 호출에 대해 새로운 TCP 연결을 생성한다는 것을 알 수 있습니다. 성능이 저하됩니다. mqtt.Client 클래스를 사용하는 것이 좋습니다 일을하기 위해;

    마지막으로 Pub 비율이 실제로 중요한 경우 C 구현이 있습니다.  MQTT 클라이언트

관련 자료

  • 이전 javascript - jsPDF를 사용하여 PDF로 두 페이지로 이미지를 표시하는 방법은 무엇입니까?
  • 다음 c++ - 어셈블리에 SFINAE?