Я не знаю почему, но этот код иногда работает, а иногда выдает ошибку, любая идея?: - PullRequest
0 голосов
/ 25 октября 2018

У меня есть этот код, который публикует несколько сообщений на разные темы.

""" 
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 или прокси-сервер закрыт, но все равно не смог решить.пожалуйста, кто-нибудь, кто может мне помочь?Заранее спасибо.

1 Ответ

0 голосов
/ 25 октября 2018

Важная часть ошибки здесь:

socket.gaierror: [Errno -3] **Temporary failure in name resolution**

Это означает, что Raspberry Pi, в котором вы запускаете код, не может найти IP-адрес для test.mosquitto.org.

Скорее всего, это означает, что в вашем коде нет ничего плохого, но вам нужно посмотреть, как Raspberry Pi подключается к Интернету.

Может быть любое количество проблем, но некоторые из них могутбыть:

  • Слабое соединение WiFi
  • Неисправное широкополосное соединение
  • Проблема у вашего интернет-провайдера

К сожалению, нетна самом деле, мы можем узнать, что это такое.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...