python - MQTT paho 客户端连接超时错误

标签 python raspberry-pi mqtt

我在笔记本电脑上运行 MQTT Mosquitto 代理。然后我尝试将 2 个 Paho MQTT 客户端连接到它:1)使用 Java Paho 从 Android 手机和 2)​​使用 Python Paho 从 Raspberry Pi。

从 Android 连接是完美的。没问题。

但是Raspberry因为某些原因无法连接。取而代之的是 client.connect 方法阻塞,一段时间后我收到以下内容:

Traceback (most recent call last):
  File "sensorsClient.py", line 28, in <module>
    client.connect(mqttServer, 1883)
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 700, in connect
    return self.reconnect()
  File "/usr/local/lib/python2.7/dist-packages/paho/mqtt/client.py", line 822, in reconnect
    sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
  File "/usr/lib/python2.7/socket.py", line 571, in create_connection
    raise err
socket.error: [Errno 110] Connection timed out

连接代码如下:

import paho.mqtt.client as mqtt

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("$SYS/#")

def on_message(client, userdata, msg):
    print(msg.topic+" "+str(msg.payload))

mqttServer = 'zzz.xxx.ccc.qqq' # Public IP of the laptop


client = mqtt.Client("", True, None, mqtt.MQTTv31)
client.on_connect = on_connect
client.on_message = on_message

client.connect(mqttServer, 1883)
client.loop_start()

一切都通过 WIFI 在一个网络内完成。没有移动数据。有人可以向我解释为什么会发生这种情况吗?

最佳答案

您可以运行的第一个检查是检查您的代理配置(如果它是您自己的代理,否则请向您的供应商索取凭据),并查看您是否为连接设置了任何用户名/密码。这很可能是客户端连接超时的问题。

如果是这种情况,您只需要在客户端配置中设置用户名/密码,例如:

client.username_pw_set("username_on_broker", "password_on_broker")

此外,我建议使用 urlparse.urlparse("broker url") 清理/标准化您的代理 URL

如果这对您没有帮助,请联系我们。

关于python - MQTT paho 客户端连接超时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43411600/

相关文章:

python - 使用 beautifulsoup 将大型 xml 文件拆分为多个文件

javascript - 使用 Cognito 并为 AWS IOT 创建策略时,iot :ClientId policy variable? 的值是多少

mqtt - MQTT 消息中是否保留消息顺序?

c - gtk_main() 与 while(1) Raspberry Pi 3

即使阻止关闭,Python Lirc 也会阻止代码

audio - 用于在两个树莓派之间流式传输多路复用 h.264 和 aac 音频的 gstreamer 管道

android - 使用 android 时 RSMB MQTT 代理上客户端标识符的套接字错误

python - 如何禁用 Nose 测试的覆盖率报告

python - 为什么我得到 "Supported target types are: (' 二进制', 'multiclass' )。相反,得到 'continuous'。“错误?

python - 使用脚本取消设置 PDF 字体