我使用了以下代码,我收到了这个错误:
Time out error : [WinError 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host failed to respond.
我也关闭了我正在使用的系统中的防火墙,但我仍然遇到了这个错误。
#!/usr/bin/env python3
import paho.mqtt.client as mqtt
# This is the Publisher
client = mqtt.Client()
client.connect("10.12.114.103",1883,60)
client.publish("topic/test", "Hello world!");
client.disconnect();
答案 0 :(得分:0)
问题可能不在于您的python代码,因为我尝试使用hivemq的公共测试服务器进行略微修改的版本,并且它工作正常。这是我试过的版本:
#!/usr/bin/env python3
import paho.mqtt.client as mqtt
# This is the Publisher
def on_log(client, userdata, level, buf):
print(level, buf)
client = mqtt.Client()
client.on_log = on_log
client.connect("broker.hivemq.com",1883,60)
client.publish("topic/test", "Hello world!");
client.disconnect();
请注意,我修改了它以返回日志输出,这对调试它很有用。脚本返回:
16 Sending PUBLISH (dFalse, q0, r0, m1, 'topic/test', ... (12 bytes)
我对连接成功的期望是什么。我还用mosquitto测试服务器检查了你的代码,它工作正常。
您的经纪人似乎不接受您的连接尝试。如果您尝试使用公共测试服务器并且仍然无法正常工作,则表明某些内容正在干扰您在端口1883上的流量。
我认为这是一个代理问题,但是,我确实注意到你没有使用任何网络循环函数(如client.loop_start),根据paho文档,这可能会导致不可预测的行为。您可以尝试添加这样的循环以查看是否有帮助
client = mqtt.Client()
client.on_log = on_log
client.connect("broker.hivemq.com",1883,60)
client.loop_start
client.publish("topic/test", "Hello world!");
client.disconnect();
client.loop_stop