【发布时间】: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