Использование mqtt paho для Python в raspberry pi

Я пытаюсь подключиться к брокеру сообщений с помощью python 2.7 в raspbian следующим образом:

import paho.mqtt.client as paho


host="messagesight.demos.ibm.com"
port=1883

def on_connect(pahoClient, obj, rc):
# Once connected, publish message
        print "Connected Code = %d"%(rc)
        client.publish("prueba/123", "Hello World", 0)


def on_log(pahoClient, obj, level, string):
        print string

def on_publish(pahoClient, packet, mid):
# Once published, disconnect
        print "Published"
        pahoClient.disconnect()

def on_disconnect(pahoClient, obj, rc):
        print "Disconnected"

# Create a client instance
client=paho.Client()

# Register callbacks
client.on_connect = on_connect
client.on_log = on_log
client.on_publish = on_publish
client.on_disconnnect = on_disconnect

#Set userid and password
client.username_pw_set(userID, password)

#connect
x = client.connect(host, port, 60)

client.loop_forever()

Когда я запускаю сценарий, я получаю следующую ошибку:

Отслеживание (последний вызов последним): файл «ejemplo.py», строка 27, в файле client = paho.Client () /usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py ", строка 410, в init self._sockpairR, self._sockpairW = _socketpair_compat () File" /usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py » , строка 255, в _socketpair_compat listensock.bind (("localhost", 0)) Файл "/usr/lib/python2.7/socket.py", строка 224, в meth return getattr (self._sock, name) (* args) socket.error: [Errno 99] Невозможно назначить запрошенный адрес

Как я могу это исправить?


person Maria Borbonés    schedule 28.10.2014    source источник
comment
Кажется немного странным писать это, но есть ли у вас поддержка IPv4 на вашем Pi?   -  person ralight    schedule 29.10.2014
comment
Или, возможно, ваш интерфейс lo не работает. Попробуйте ifconfig lo down; ifconfig lo up   -  person ralight    schedule 29.10.2014


Ответы (1)


Мне просто быстро надоел ваш код, и он публикуется в messagesight.demos.ibm.com нормально.

пример

Единственное, что я сделал, это закомментировал идентификатор пользователя и пароль.

#client.username_pw_set(userID, password)

Правильно ли вы установили Paho Python Client, тоже хороший пример. http://www.eclipse.org/paho/clients/python/

person Matt.    schedule 28.10.2014
comment
да, клиент Paho Python установлен правильно ... он все еще не работает. Мы по-прежнему сталкиваемся с той же проблемой: невозможно определить запрошенный адрес. Каково содержимое вашего файла client.py? Можете ли вы найти строку 260 listensock.bind ((127.0.0.1, 0))? Спасибо! - person Maria Borbonés; 29.10.2014
comment
можете ли вы предоставить результат ifconfig -a - person Andy Piper; 29.10.2014
comment
@maria похоже на то, что упоминают другие парни, конфигурация сети chi. - person Matt.; 30.10.2014
comment
спасибо, ты прав! Проблема была в файле / etc / network / interfaces, он не был настроен должным образом ... - person Maria Borbonés; 30.10.2014
comment
Для других то, что имели в виду @MariaBorbones и @Matt, было комментарием к вопросу. Проблема в том, что lo или интерфейс обратной связи не работает. вы можете включить его, используя sudo ifconfig lo up - person Isa A; 01.02.2018