python - 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()
。
解决方案
将发布移动到on_connect
回调。该代码试图在连接完成之前发布并添加它是一条 QoS 0 消息,它只是被丢弃了
正如英国人所说,您还没有启动客户端网络循环
推荐阅读
- dictionary - 如何在 f# 中创建地图的副本?
- mysql - MySQL #1064 - 您的 SQL 语法有错误 2020
- r - vifcor 函数在 R 中的工作原理
- c# - WPF项目中的Serilog
- reactjs - 使用动态 URL 时如何使用 React Router 重新加载组件?
- reactjs - 如何在 React 类中停止重复的 Ajax 调用?
- php - 控制结构中的 () 和 (()) 有什么区别?
- go - Golang 切片拷贝
- javascript - 比较两个画布图像(参考一个和网站上的当前)
- html - 如何设置边框底部以覆盖文本的宽度而不是整个汉堡菜单?