我有这个代码,它发布了不同主题的多条消息。
"""
Publish some messages to queue
"""
import paho.mqtt.publish as publish
host ="test.mosquitto.org"
msgs = [{'topic': "A/A1", 'payload': "30"},
{'topic': "A/A2", 'payload': "40"},
{'topic': "A/A3", 'payload': "1"}]
if __name__ == '__main__':
# publish multiple messages
publish.multiple(msgs, hostname=host)
但有时它适用于我并发布数据,有时会抛出此错误。
Traceback (most recent call last):
File "/home/pi/Desktop/NRF24L01/publish.py", line 22, in <module>
publish.multiple(msgs, hostname=host)
File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/publish.py", line 159, in multiple
client.connect(hostname, port, keepalive)
File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 839, in connect
return self.reconnect()
File "/usr/local/lib/python3.5/dist-packages/paho/mqtt/client.py", line 962, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/usr/lib/python3.5/socket.py", line 693, in create_connection
for res in getaddrinfo(host, port, 0, SOCK_STREAM):
File "/usr/lib/python3.5/socket.py", line 732, in getaddrinfo
for res in _socket.getaddrinfo(host, port, family, type, proto, flags):
socket.gaierror: [Errno -3] **Temporary failure in name resolution**
经过大量的研究后,我看到一些评论说它是DNS问题或代理已关闭但无论如何都无法解决。请任何能帮助我的人?提前致谢。
错误的重要部分在于:
socket.gaierror: [Errno -3] **Temporary failure in name resolution**
这意味着您运行代码的Raspberry Pi无法找到test.mosquitto.org
的IP地址。
这很可能意味着您拥有的代码没有任何问题,但您需要了解Raspberry Pi如何连接到互联网。
它可能是任何数量的问题,但其中一些可能是:
不幸的是,我们真的没有办法知道它是远程的。