2016-02-29 64 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連接代碼解決了我的問題。

相關問題