I have setup MQTT on a Raspberry Pi and configured an Arduino Uno to the broker, but I am seeing the following entry in the /var/log/mosquitto/mosquitto.log file:
New connection from 192.168.10.114 on port 1883.
Socket error on client <unknown>, disconnecting.
The Pi is setup with ETH0 wired to my local LAN and has an IP address of 192.168.1.50
There is also a WiFi AP setup on the Pi. The Arduino Uno connects via WiFi to send/receive MQTT messages. The WiFi AP has an IP address of 192.168.10.1 and provides DHCP leases via dnsmasq
.
I have tried publishing and subscribing test on the local MQTT broker server (the Pi) and get the same error:
Command:
mosquitto_sub -h 192.168.10.1 -t topic
mosquitto.log:
New connection from 192.168.10.1 on port 1883.
New client connected from 192.168.10.1 as mosqsub/1837-raspberryp (cl, k60).
Socket error on client <unknown>, disconnecting.
Here is /etc/mosquitto/mosquitto.conf:
pid_file /var/run/mosquitto.pid
persistence true
log_dest file /var/log/mosquitto/mosquitto.log
allow_anonymous true
include_dir /etc/mosquitto/conf.d
sudo service mosquitto stop sudo service mosquitto start:
mosquitto version 1.4.8 terminating
mosquitto version 1.4.8 (build date Sun, 14 Feb 2016 15:06:55 +0000) starting
Config loaded from /etc/mosquitto/mosquitto.conf.
Opening ipv4 listen socket on port 1883.
Opening ipv6 listen socket on port 1883.
There might be an issue in my interfaces configuration. Here is /etc/network/interfaces:
source-directory /etc/network/interfaces.d
auto lo
iface lo inet loopback
iface eth0 inet manual
auto wlan0
allow-hotplug wlan0
iface wlan0 inet static
address 192.168.10.1
netmask 255.255.255.0
Can anyone point me on where the socket error is coming from on MQTT?
I came to this thread because I was facing the same error. After some more troubleshooting, it was related to the authentication configuration - the client (Arduino) was trying to connect anonymously (with no password), while the broker (Pi) was set up to only allow authenticated connections (allow_anonymous false in the MQTT configuration).
Adding the correct password to the Arduino connection code solved the issue for me.