paho mqtt python包中出现连接拒绝错误



我是paho mqtt的新手。我试图使用本地主机发布一个主题,但遇到了以下错误:

Traceback (most recent call last):
File "server.py", line 10, in <module>
client1.connect(host,port,keepalive)
File "/usr/local/lib/python2.7/dist-packages/paho_mqtt-1.3.1-py2.7.egg/paho/mqtt/client.py", line 768, in connect
return self.reconnect()
File "/usr/local/lib/python2.7/dist-packages/paho_mqtt-1.3.1-py2.7.egg/paho/mqtt/client.py", line 895, in reconnect
sock = socket.create_connection((self._host, self._port), source_address=(self._bind_address, 0))
File "/usr/lib/python2.7/socket.py", line 575, in create_connection
raise err
socket.error: [Errno 111] Connection refused

我的python代码如下:

import paho.mqtt.client as paho
port=1883
host = "localhost"
keepalive = 60
def on_publish(client,userdata,result):
print("data published n")
pass
client1= paho.Client("control1")
client1.on_publish = on_publish
client1.connect(host,port,keepalive)
ret= client1.publish("Robot","Robot 1 move_left")

当我用iot.eclipse.org作为主机运行相同的代码时,它工作得很好。如有任何帮助,我们将不胜感激。

我也面临同样的问题。解决方案是安装一个本地MQTT代理。

http://www.steves-internet-guide.com/install-mosquitto-linux/

mqtt公开的docker端口通常与1883不同。我使用官方的eclipse mosquitto docker,他们页面上的运行示例类似于:

sudo docker run -it -p 11883:1883 -p 9001:9001 eclipse-mosquitto

因此客户端应该连接到端口11883

client.connect(broker_address, 11883)

最新更新