【问题标题】:Can't connect to Mosquitto server using paho.mqtt.client although mosquitto_pub works fine尽管 mosquitto_pub 工作正常,但无法使用 paho.mqtt.client 连接到 Mosquitto 服务器
【发布时间】:2014-11-03 22:35:37
【问题描述】:

我有一个运行 mosquitto 的远程服务器。我可以使用 mosquitto_pub 和 mosquitto_sub 连接到该服务器并交换消息。如果我使用带有 paho.mqtt.client 的一些 python 尝试相同的操作,我将无法连接。我的脚本一直在运行,但从未调用过 on_connection 钩子。但是,相同的脚本可以在我的本地 mosquitto 服务器上完美运行。

连接问题的可能原因是什么?我怎样才能获得关于正在发生的事情的更多反馈?有什么建议吗?

编辑:我添加了一个最小的代码示例

import paho.mqtt.client as mqtt


def on_connect(client, userdata, flags, rc):
    print("Yeeha")
    client.subscribe("botgrid/init", qos=2)

def on_message(client, userdata, msg):
    print(msg.payload)

client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
client.connect("localhost")
print("Waiting for connection...")
client.loop_forever()

编辑 2:在玩耍时,我注意到将“localhost”替换为“test.mosquitto.org”会导致 OSError: [Errno 101] Network is unreachable 尽管我通过 mosquitto_sub 连接到它没有问题

【问题讨论】:

  • 您能否发布您的(或部分)脚本以便我们查看?
  • 什么版本的蚊子?我打赌你在 0.15 或 1.2.x 上。
  • @ralight 我刚刚安装了 mosquitto 版本 1.3.5(构建日期 2014-10-08 22:31:34+0000),希望这可以解决问题。然而,它没有。
  • 该代码 sn-p 对我来说适用于 localhost、我本地网络上的代理和 test.mosquitto.org。我对网络无法访问错误的唯一想法是它可以通过 IPv6 访问,而您只有 IPv4。您是否尝试过使用 IP 地址而不是名称?
  • 是的,我有。同样, 127.0.0.1 会导致 yeeha,远程 IP 不会。有什么方法可以从客户那里获得更多信息,帮助我了解原因?

标签: python python-3.x mqtt mosquitto paho


【解决方案1】:

这段代码会产生同样的问题吗?这可能相当于失败时的代码。

import socket

sock = socket.create_connection(("test.mosquitto.org", 1883))

【讨论】:

  • 那么你测试了吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-10-13
  • 2015-01-19
  • 2013-11-20
  • 2012-07-29
  • 2021-06-14
  • 1970-01-01
  • 2014-12-18
相关资源
最近更新 更多