Python paho mqtt 抛出类型错误:“需要一个整数”

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

我有五个树莓派3来收集IOT数据。只有一个客户端抛出此错误,

这是回溯消息:

Traceback (most recent call last):
  File "./uploadRecordDegree.py", line 57, in <module>
    auth=auth, client_id=client_id)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/publish.py", line 232, in single
    protocol, transport, proxy_args)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/publish.py", line 167, in multiple
    client.connect(hostname, port, keepalive)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 941, in connect
    return self.reconnect()
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 1119, in reconnect
    return self._send_connect(self._keepalive)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 2647, in _send_connect
    self._pack_str16(packet, self._client_id)
  File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 2496, in _pack_str16
    packet.extend(data)
TypeError: an integer is required

这是我的测试代码:

BOX = {"1234": "balabala"}
host = "192.168.10.11"
port = 1883
topic = "iot/device"
auth = {'username': 'xxxx','password': 'xxxxx'}
payload = json.dumps(BOX) 
client_id = "testNode"
publish.single(topic, payload, qos=1, hostname=host, port=port,
        auth=auth, client_id=client_id)

我的Python版本是3.5.2 paho-mqtt 版本是 1.5.1

每个客户端都具有相同的 paho-mqtt 版本,相同的代码。 我不知道出了什么问题。

python mqtt
1个回答
0
投票

这个问题你解决了吗? 我在尝试连接和订阅时遇到同样的情况 我使用的是 python 3.12 泛美卫生组织-MQTT 1.6.1

我的参数是

host = 'localhost'
port = 1883
keepalive = 60 
properties = Properties(PacketTypes.CONNECT) // because I am using MQTT_5
© www.soinside.com 2019 - 2024. All rights reserved.