当前位置: 首页 > 知识库问答 >
问题:

客户端上的MQTT套接字错误

郎灿
2023-03-14

我已经在Raspberry Pi上安装了MQTT,并为代理配置了Arduino Uno,但在/var/log/mosquitto/mosquitto.log文件中看到了以下条目:

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

Pi是用有线到本地LAN的ETH0设置的,IP地址为192.168.1.50

在PI上还有一个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

sudo服务蚊子停止sudo服务蚊子开始:

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

共有1个答案

全飞扬
2023-03-14

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

在Arduino连接代码中添加正确的密码为我解决了这个问题。

 类似资料:
  • 错误:在object.exports._errnoException(util.js:856:11)在exports._exceptionWithHostPort(util.js:879:20)在tcpConnectTRap.AfterConnect[as oncomplete](net.js:1063:14)vivek@vivek-latitude-e6220://var/www/html/te

  • 安装:composer require imiphp/imi-mqtt 项目配置文件: [ 'components' => [ 'MQTT' => 'Imi\MQTT', ], ] MQTT 功能要求 PHP >= 7.2 使用 事件监听类: <?php namespace Imi\MQTT\Test; use Imi\MQTT\Client\Con

  • 可能还值得注意的是,我使用了的修改版本,专门为unix域填充。

  • 我希望能够连接到需要智能卡的个人证书进行身份验证的https站点。我想我已经很接近让它工作了,但不知道如何克服这个例外: 由于合同关系,我不能共享我的代码,但这里有一个总结: 我创建了一个密钥库,其中包含从浏览器导出的所有证书。我使用此密钥存储作为SSLContext的信任存储。我非常肯定这个密钥库包含正确的CA证书来验证远程站点的证书,因为它修复了“无法找到请求目标的有效证书路径”的异常。 我可

  • 我试图用java实现一个客户端服务器,在这里我读取客户端中的输入并在服务器中执行UperCase,然后返回客户端并打印UperCase。我使用ObjectOutputStream和ObjectInputStream进行读写,但是当我在客户机中键入一个msg时,程序会显示以下错误: Digite uma msg casa java.io.eofexception位于java.io.datainput

  • 这几天又有一个挑战砸到了我的头。我正在尝试用Java创建一个FTP服务器,它应该能够与FileZilla FTP客户端通信。代码不是最好的,因为我尝试了很多方法来找出发生了什么。 这里的FileZilla日志从德语翻译 目前的主要问题是建立真正的联系。套接字已连接,我可以向客户端发送至少一条消息,但没有机会获取客户端输入,例如PASV、USER和PASS。 对于错误消息/打印堆栈: