im пытается подключиться к локально размещенному брокеру HiveMQ с использованием виртуальной машины RaspberryPi (с использованием виртуальной машины VM VirtualBox). im, используя Mqtt.fx, а также второго клиента, чтобы посмотреть, получают ли опубликованные сообщения.Ошибка сокета: Errno 111 Connection Refused
Я использовал «iot.eclipse.org», прежде чем попытался использовать локальный брокер hivemq, и он отлично работал. поэтому я не слишком уверен, в чем проблема. возможно, я просто что-то забыл.
im использование модуля paho mqtt. и мой код библиотеки сильно разорван отсюда: https://pypi.python.org/pypi/paho-mqtt
im используя библиотеку/модуль, а затем ссылаясь на это в другом .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, если это помогает!
Благодарим вас за ваше время заранее!
EDITED
добавлен вывод Ifconfig:
[email protected]:~$ 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:
[email protected]:~$ 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 -
г
Просто чтобы уточнить, как брокер, так и клиенты все работают внутри виртуальной машины? – hardillb
нет! извините, я не сказал! в VM работают 2 образца кода. MQTT.fx и HiveMQ работают за пределами VM (окна 7). – Jensen
Тогда ip-адрес брокера не будет 127.0.0.1 (localhost), это будет то, что когда-либо был указан адрес шлюза, который был указан VM. Вам также может потребоваться добавить сеть «Только хост» на вашу виртуальную машину – hardillb