【求助】python写的mqtt client,连接apollo总是报错 Error 10054

首先,apollo正常启动

clipboard.png

python代码,很简单:

import time
import paho.mqtt.client as mqtt



def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))

if __name__ == "__main__":
    client = mqtt.Client()
    client.username_pw_set(username="admins",password="password")
    client.on_connect = on_connect

    client.connect("127.0.0.1", 61613, 60)
    client.loop_start()


    #while True:
    time.sleep(1)
    client.publish(topic="message", payload="hello")

python2.7编译器,运行后报错

Connected to pydev debugger (build 173.4674.37)
[Errno 10054] 
Exception in thread Thread-6 (most likely raised during interpreter shutdown):
Process finished with exit code 0

阅读 4.2k
1 个回答

python代码需要增加一行

import time
import paho.mqtt.client as mqtt



def on_connect(client, userdata, flags, rc):
    print("Connected with result code " + str(rc))

if __name__ == "__main__":
    #client_id是必须的,并且是唯一的。否则可能会出现如下错误
    client_id = time.strftime('%Y%m%d%H%M%S', time.localtime(time.time()))
    client = mqtt.Client(client_id) #ClientId不能重复,所以使用当前时间
    
    client.username_pw_set(username="admins",password="password")
    client.on_connect = on_connect

    client.connect("127.0.0.1", 61613, 60)
    client.loop_start()


    #while True:
    time.sleep(1)
    client.publish(topic="message", payload="hello")
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题