使用paho mqtt python在不同系统之间建立mqtt连接:

使用paho mqtt python在不同系统之间建立mqtt连接:,python,mqtt,Python,Mqtt,我使用了以下代码,我得到了这个错误: 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. 我还关闭了我正在使用的系统中的

我使用了以下代码,我得到了这个错误:

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();

问题可能不在于您的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

MQTT broker@10.12.114.103:1883没有应答,请尝试连接MQTTfx或类似工具以检查代理是否正常工作我使用了hivemq broker,仍然收到相同的错误..您确定在运行测试时代理正在10.12.114.103上运行吗?我收到一个连接被拒绝的错误-“无法建立连接,因为目标计算机主动拒绝了它”我对该错误的理解是代理根本不接受连接。您是否在其中一个测试代理中尝试了示例代码?它是否有效?我尝试了“broker.hivemq.com”“我得到了上面的错误。但是如果我在同一个本地主机上连接一个代理,它就会连接起来。非常感谢。。。现在,当我连接到hivemq代理或things.ubidots.com时,它就可以工作了。。。。。但我无法连接到另一台运行MOSQUITO代理的笔记本电脑。。。。。我得到这个插座。错误错误号10060…很好!很高兴代码有帮助。(如果您觉得问题已经得到处理,请随意将其标记为已回答。)是否定义了on_log回调?它能给你提供有用的输出吗?10060基本上意味着代理拒绝连接。您能从命令行使用mosquitto访问笔记本电脑吗?如果您不能,您可能希望打开一个关于代理配置的新问题。