2016-02-29 67 views
2

我有一个树莓派安装MQTT和配置一个Arduino欧诺给经纪人,但我看到在/var/log/mosquitto/mosquitto.log文件中的以下条目:客户端MQTT套接字错误<unknown>

New connection from 192.168.10.114 on port 1883. 
Socket error on client <unknown>, disconnecting. 

的皮被设定与ETH0有线到我的本地局域网并具有192.168.1.50

的IP地址

还有在郫县一WiFi AP间的设置。 Arduino Uno通过WiFi连接发送/接收MQTT消息。 WiFi AP的IP地址为192.168.10.1,并通过dnsmasq提供DHCP租用。

我已经尝试了本地MQTT代理服务器(PI)的发布和订阅的测试,并得到了同样的错误:

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. 

这里是/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 

须藤服务mosquitto停止 须藤服务mosquitto启动:

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. 

我的接口配置中可能存在问题。这里是/ 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 

任何人都可以指出哪里的套接字错误来自MQTT?

回答

-2

你的意思是树莓是经纪人,arduino是订户,不是吗?

我有一个类似的问题,当我想与我的订阅者联系到经纪人时,它不会连接到端口1883(似乎只适用于发布商..)。 我有如下因素的变化解决了这个问题,

config.mk

WITH_WEBSOCKETS:=yes

mosquitto.conf

变化:

user mosquitto by user pi

添加在文件的结尾:

listener 1883 listener 9001 <Raspberry IP> protocol websockets

重新运行经纪人

mosquitto -c mosquitto.conf 

然后我可以我的用户连接到代理端口9001。

+0

这显然是错误的。发布者和订阅者都可以使用端口1883(连接时它们之间没有实际的区别,同一个客户端可以同时是pub和sub)。 – Bogd

0

我来这个线程,因为我面临着同样的错误。经过一些故障排除后,它与认证配置有关 - 客户端(Arduino)试图匿名连接(无密码),而代理(Pi)设置为仅允许通过身份验证的连接(MQTT配置中的allow_anonymous为false )。

将正确的密码添加到Arduino连接代码解决了我的问题。

相关问题