Arhn - архитектура программирования

Ошибка сокета: Errno 111 Отказано в подключении

я пытаюсь подключиться к локально размещенному брокеру HiveMQ с помощью виртуальной машины RaspberryPi (с использованием Oracle VM VirtualBox). я использую Mqtt.fx, а также в качестве второго клиента, чтобы посмотреть, получаются ли опубликованные сообщения.

я использовал «iot.eclipse.org», прежде чем я попытался использовать локального брокера hivemq, и он работал нормально. так что я не слишком уверен, в чем проблема. может я просто что-то забыл.

я использую модуль paho mqtt. и код моей библиотеки сильно скопирован отсюда: https://pypi.python.org/pypi/paho-mqtt

я использую библиотеку/модуль, а затем ссылаюсь на него в другом файле .py. Это код из библиотеки/модуля:

import paho.mqtt.client as mqtt

client = mqtt.Client()                       

#Called on connection to server/broker
def on_connect(client, userdata, rc):                                               
    print("connected with result code"+str(rc))                                 

#Called when new message published to subscribed topic
def on_message(client, userdata, msg):          
    print("NEW PUBLISH: "+msg.topic+" "+str(msg.payload))

#configure connection to the broker
def setup():                                    
    client.on_connect = on_connect
    client.on_message = on_message

#Subscribe
def subscribe(topic):
    print("subscribing to topic: " +topic)
    client.subscribe(topic)

#Connect to broker
def connect():
    client.connect("127.0.0.1", 1883, 60)

def publish(topic, msg):
    client.publish(topic, msg)

и это код, который я действительно запускаю. Всего 2 простых публикации:

import mqttLib as owly

owly.setup()
owly.connect()
owly.publish("test/library", "test okay :)")

num1 = input("1st number: ")
num2 = input("2nd number: ")
mult = num1 * num2

owly.publish("test/mult", mult)

Это сообщение, которое я получаю после его запуска:

 Traceback (most recent call last):
  File "mqttTest.py", line 6, in <module>
  owly.connect()
  File "/home/rpi/python/MQTT/mqttLib.py", line 27, in connect
  client.connect("127.0.0.1", 1883, 60)
  File "/usr/local/lib/python2.6/dist-packages/paho/mqtt/client.py", line 612, In connect
  return self.reconnect()
  File "/usr/local/lib/python2.6/dist-packages/paho/mqtt/client.py", line 732, in reconnect
  sock = socket.create_connection((self._host, self._port))
  File "/usr/lib/python2.6/socket.py", line 514, in create_connection
  raise error, msg
  socket.error: [Errno 111] Connection refused

Тот факт, что он работает на удаленно размещенном брокере. а не локально меня смущает.

я удалил большинство плагинов в HiveMQ и оставил плагин журнала сообщений в HiveMQ, поэтому я не думаю, что это как-то связано с аутентификацией.

я думаю, что виртуальная машина, которую я использую, - это Ubuntu, если это поможет!

Спасибо за ваше время заранее!

ОТРЕДАКТИРОВАНО

добавлен вывод ifconfig:

rpi@RaspberryPi:~$ ifconfig 
eth0      Link encap:Ethernet  HWaddr 08:00:27:5b:26:64  
      inet addr:192.168.56.101  Bcast:192.168.56.255  Mask:255.255.255.0
      inet6 addr: fe80::a00:27ff:fe5b:2664/64 Scope:Link
      UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
      RX packets:607 errors:0 dropped:0 overruns:0 frame:0
      TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000 
      RX bytes:82290 (82.2 KB)  TX bytes:1920 (1.9 KB)

lo    Link encap:Local Loopback  
      inet addr:127.0.0.1  Mask:255.0.0.0
      inet6 addr: ::1/128 Scope:Host
      UP LOOPBACK RUNNING  MTU:16436  Metric:1
      RX packets:0 errors:0 dropped:0 overruns:0 frame:0
      TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:0 
      RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

добавлен вывод netstat -anp:

rpi@RaspberryPi:~$ netstat -anp
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
 Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State PID/Program name
udp        0      0 0.0.0.0:68              0.0.0.0:*                               -               
Active UNIX domain sockets (servers and established)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     5465     1017/lxterminal     /tmp/.lxterminal-socket:0.0-rpi
unix  2      [ ACC ]     STREAM     LISTENING     2354     -                   @/com/ubuntu/upstart
unix  2      [ ACC ]     STREAM     LISTENING     3653     -                   /tmp/.X11-unix/X0
unix  2      [ ACC ]     STREAM     LISTENING     3652     -                   @/tmp/.X11-unix/X0
unix  2      [ ]         DGRAM                    2462     -                   @/org/kernel/udev/udevd
unix  2      [ ACC ]     STREAM     LISTENING     4693     891/dbus-daemon     @/tmp/dbus-DYueHXFGGf
unix  2      [ ACC ]     STREAM     LISTENING     4524     814/gnome-keyring-d /tmp/keyring-OM3Fh4/control
unix  2      [ ACC ]     STREAM     LISTENING     5019     913/gam_server      @/tmp/fam-rpi-
unix  2      [ ]         DGRAM                    5068     -                   @/org/freedesktop/hal/udev_event
unix  2      [ ACC ]     STREAM     LISTENING     4680     -                   /tmp/ssh-ESoUnvu822/agent.822
unix  2      [ ACC ]     STREAM     LISTENING     5037     -                   @/var/run/hald/dbus-ejQUT9OaXl
unix  2      [ ACC ]     STREAM     LISTENING     4832     904/pcmanfm         /tmp/.pcmanfm-socket:0.0-rpi
unix  2      [ ACC ]     STREAM     LISTENING     3497     -                   /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     4834     909/menu-cached     /tmp/.menu-cached-:0-rpi
unix  2      [ ACC ]     STREAM     LISTENING     4966     814/gnome-keyring-d /tmp/keyring-OM3Fh4/pkcs11
unix  6      [ ]         DGRAM                    3504     -                   /dev/log
unix  2      [ ACC ]     STREAM     LISTENING     5014     814/gnome-keyring-d /tmp/keyring-OM3Fh4/ssh
unix  2      [ ACC ]     STREAM     LISTENING     5042     -                   @/var/run/hald/dbus-9woYq1KdE9
unix  3      [ ]         STREAM     CONNECTED     5468     -                   
unix  3      [ ]         STREAM     CONNECTED     5467     1017/lxterminal     
unix  3      [ ]         STREAM     CONNECTED     5463     -                   @/tmp/.X11-unix/X0
unix  3      [ ]         STREAM     CONNECTED     5462     1017/lxterminal     
unix  2      [ ]         DGRAM                    5365     -                   
unix  3      [ ]         STREAM     CONNECTED     5288     -                   @/var/run/hald/dbus-ejQUT9OaXl
unix  3      [ ]         STREAM     CONNECTED     5287     -                   
unix  3      [ ]         STREAM     CONNECTED     5283     -                   @/var/run/hald/dbus-ejQUT9OaXl
unix  3      [ ]         STREAM     CONNECTED     5239     -                   
unix  3      [ ]         STREAM     CONNECTED     5237     -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     5236     -                   
unix  3      [ ]         STREAM     CONNECTED     5144     -                   @/var/run/hald/dbus-ejQUT9OaXl
unix  3      [ ]         STREAM     CONNECTED     5134     -                   
unix  3      [ ]         STREAM     CONNECTED     5063     -                   @/var/run/hald/dbus-9woYq1KdE9
unix  3      [ ]         STREAM     CONNECTED     5062     -                    
unix  3      [ ]         STREAM     CONNECTED     5039     -                   /var/run/dbus/system_bus_socket
unix  3      [ ]         STREAM     CONNECTED     5038     -                   
unix  3      [ ]         STREAM     CONNECTED     5025     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     5024     904/pcmanfm         
 unix  3      [ ]         STREAM     CONNECTED     5022     913/gam_server      @/tmp/fam-rpi-
 unix  3      [ ]         STREAM     CONNECTED     5021     904/pcmanfm         
 unix  2      [ ]         DGRAM                    4969     814/gnome-keyring-d 
 unix  3      [ ]         STREAM     CONNECTED     4964     891/dbus-daemon     @/tmp/dbus-DYueHXFGGf
 unix  3      [ ]         STREAM     CONNECTED     4963     814/gnome-keyring-d 
 unix  3      [ ]         STREAM     CONNECTED     4842     909/menu-cached     /tmp/.menu-cached-:0-rpi
 unix  3      [ ]         STREAM     CONNECTED     4838     902/lxpanel         
 unix  3      [ ]         STREAM     CONNECTED     4830     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4829     904/pcmanfm         
 unix  3      [ ]         STREAM     CONNECTED     4796     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4795     901/xscreensaver    
 unix  3      [ ]         STREAM     CONNECTED     4788     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4787     902/lxpanel         
 unix  3      [ ]         STREAM     CONNECTED     4762     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4761     897/openbox         
 unix  3      [ ]         STREAM     CONNECTED     4701     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4700     822/lxsession       
 unix  3      [ ]         STREAM     CONNECTED     4697     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4696     890/dbus-launch     
 unix  3      [ ]         STREAM     CONNECTED     4695     891/dbus-daemon     
 unix  3      [ ]         STREAM     CONNECTED     4694     891/dbus-daemon     
 unix  3      [ ]         STREAM     CONNECTED     4683     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4682     890/dbus-launch     
 unix  3      [ ]         STREAM     CONNECTED     4673     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4672     882/VBoxClient      
 unix  3      [ ]         STREAM     CONNECTED     4671     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4670     882/VBoxClient      
 unix  3      [ ]         STREAM     CONNECTED     4666     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4665     875/VBoxClient      
 unix  3      [ ]         STREAM     CONNECTED     4664     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4663     875/VBoxClient      
 unix  3      [ ]         STREAM     CONNECTED     4656     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     4655     866/VBoxClient      
 unix  3      [ ]         STREAM     CONNECTED     4527     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     4526     -                   
 unix  3      [ ]         STREAM     CONNECTED     4440     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     4439     -                   
 unix  3      [ ]         STREAM     CONNECTED     4415     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     4414     -                   
 unix  3      [ ]         STREAM     CONNECTED     4402     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     4401     -                   
 unix  2      [ ]         DGRAM                    4400     -                   
 unix  2      [ ]         DGRAM                    4355     -                   
 unix  3      [ ]         STREAM     CONNECTED     4356     -                   @/tmp/.X11-unix/X0
 unix  3      [ ]         STREAM     CONNECTED     3663     -                   
 unix  3      [ ]         STREAM     CONNECTED     3517     -                   /var/run/dbus/system_bus_socket
 unix  3      [ ]         STREAM     CONNECTED     3516     -                   
 unix  3      [ ]         STREAM     CONNECTED     3515     -                   
 unix  3      [ ]         STREAM     CONNECTED     3514     -                   
 unix  3      [ ]         DGRAM                    2494     -                   
 unix  3      [ ]         DGRAM                    2493     -               unix  3      [ ]         STREAM     CONNECTED     2445     -                   @/com/ubuntu/upstart
 unix  3      [ ]         STREAM     CONNECTED     2444     -                   

r


  • Просто чтобы уточнить, и брокер, и клиенты работают внутри виртуальной машины? 30.10.2015
  • нет! извините не сказал! 2 примера кода выполняются на виртуальной машине. MQTT.fx и HiveMQ работают вне виртуальной машины (Windows 7). 30.10.2015
  • Тогда IP-адрес брокера не будет 127.0.0.1 (localhost), это будет тот адрес шлюза, который был предоставлен виртуальной машине. Вам также может потребоваться добавить сеть только для хоста к вашей виртуальной машине. 30.10.2015
  • Я сделал «ifconfig» и не могу увидеть адрес шлюза! глядя на настройку, я вижу адаптер только для хоста 30.10.2015
  • Обновите вопрос, указав вывод «ip-адрес» и «ip-маршрут» из виртуальной машины. 30.10.2015
  • сделано! это IP-адрес, который мне нужен? 30.10.2015
  • Можете ли вы опубликовать вывод netstat -anp? 30.10.2015
  • сделано! как поможет netstat -anp? 30.10.2015
  • Это IP-маршрут, который мне действительно нужен, чтобы увидеть адрес шлюза. 30.10.2015

Ответы:


1

Как упоминалось в комментариях, 127.0.0.1 — это локальный адрес виртуальной машины, вам нужно использовать IP-адрес хоста, на котором работает брокер.

В этом случае хост-брокер находится на хосте виртуальной машины, вы можете получить адрес хоста виртуальной машины с помощью команды ip route на виртуальной машине, ее вывод будет выглядеть примерно так:

default via 192.168.56.100 dev eth0 
192.168.56.0/24 dev eth0  proto kernel  scope link  src 192.168.56.100

IP-адрес, который вы хотите использовать для своего брокера, должен быть адресом в строке, которая начинается со значения по умолчанию, в примере это 192.168.56.100.

30.10.2015
  • Да! Я понял! изменился на локальный IP-адрес хоста, я думаю, что попробовал IP-адрес маршрута, и он не сработал, поэтому я просто использовал ipconfig на хосте и попробовал адрес там! Спасибо за вашу помощь :) 02.11.2015
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..