首页 > 解决方案 > paho.mqtt.python 无法传递用户名和密码

问题描述

我正在尝试使用 paho 创建一个 mqtt 连接。发布后,rc返回成功状态,但消息尚未传递。

这是代码:

import os
import paho.mqtt.client as mqtt
    
def on_connect(client, userdata, flags, rc):
    print("connected with rc: "+str(rc))
    pass
    
def on_publish(client, data, result):
    print("data published")
    pass
    
client = mqtt.Client()
client.username_pw_set(username="test", password="test" )
client.on_connect = on_connect 
client.on_publish = on_publish
client.connect("some-host", 1883)


topic = "/something"
value = "cool"
ret = client.publish(topic, value)

if ret.rc == 0:
    return {
        "statusCode": 200,
        "body": "The payload was successfully published"
    }
else:
    return {
        "statusCode": 500,
        "body": "There was an error publishing this payload"
    }

有谁知道这里发生了什么?我看到了这篇文章,但我的问题没有通过添加来解决client.tls_set()

标签: pythonmqttpaho

解决方案


将发布移动到on_connect回调。该代码试图在连接完成之前发布并添加它是一条 QoS 0 消息,它只是被丢弃了

正如英国人所说,您还没有启动客户端网络循环


推荐阅读