运行此python代码(mqtt)时出错

运行此python代码(mqtt)时出错,mqtt,iot,publish-subscribe,Mqtt,Iot,Publish Subscribe,在运行此代码期间 将paho.mqtt.client作为发布导入 c=pub.Client() c、 connect(“broker.hivemq.com”,1833年) 尽管如此: c、 发布(“room1”,“你好!欢迎来到物联网课程”) 回溯(最近一次呼叫最后一次): 文件“C:\Users\sukreti\Desktop\mqtt\publish.py”,第3行,在 c、 connect(“broker.hivemq.com”,1833年) 文件“C:\Users\sukreti\Ap

在运行此代码期间

将paho.mqtt.client作为发布导入
c=pub.Client()
c、 connect(“broker.hivemq.com”,1833年)
尽管如此:
c、 发布(“room1”,“你好!欢迎来到物联网课程”)
回溯(最近一次呼叫最后一次):
文件“C:\Users\sukreti\Desktop\mqtt\publish.py”,第3行,在
c、 connect(“broker.hivemq.com”,1833年)
文件“C:\Users\sukreti\AppData\Local\Programs\Python\Python37-32\lib\site packages\paho\mqtt\client.py”,第839行,在connect中
返回self.reconnect()
文件“C:\Users\sukreti\AppData\Local\Programs\Python\Python37-32\lib\site packages\paho\mqtt\client.py”,第962行,在重新连接中
sock=socket.create_连接((self.\u主机,self.\u端口),source_地址=(self.\u绑定_地址,0))
文件“C:\Users\sukreti\AppData\Local\Programs\Python\Python37-32\lib\socket.py”,第727行,位于create\u connection中
提出错误
文件“C:\Users\sukreti\AppData\Local\Programs\Python\Python37-32\lib\socket.py”,第716行,位于create\u connection中
sock.connect(sa)
TimeoutError:[WinError 10060]连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机没有响应

即使您发布的代码确实有效,它也将有效地成为对代理的DoS攻击,而不是您应该对免费的公共代理执行的操作,该代理提供给用户进行测试

由于没有启动线程,将导致此问题。此线程处理代理发送回客户端的所有消息,例如连接确认

我建议你阅读泛美卫生组织文件的部分,但这里有一个更好的版本,你发布的内容只会发布一条消息

import paho.mqtt.client as pub

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("room1")
    client.publish("room1", "hello!welcome to iot class")

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


c = pub.Client()
c.on_connect = on_connect
c.on_message = on_message

c.connect("broker.hivemq.com",1833)
c.loop_forever() 

首先找到一个不错的例子,它实际上处理(重新)连接,而不是试图通过不断发送相同的消息来阻塞通道。还要确保代理详细信息是正确的,特别是因为它需要ssl和凭据才能访问。
import paho.mqtt.client as pub

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("room1")
    client.publish("room1", "hello!welcome to iot class")

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


c = pub.Client()
c.on_connect = on_connect
c.on_message = on_message

c.connect("broker.hivemq.com",1833)
c.loop_forever()