python - 无法从 paho python mqtt 中的线程发布
问题描述
我正在使用 paho-mqtt 库来运行基于 python 的 mqtt 客户端。根据以下代码,我无法从单独的线程发布消息
cb_client = mqtt.Client(
client_id = "timerScript",
userdata = [db,conf],
clean_session = True,
protocol=mqtt.MQTTv311
)
cb_client.username_pw_set(bc['username'], bc['password'])
userdata = [db,conf]
cb_client.connect(host=bc['host'], port=int(bc['port']))
handle_trigger(cb_client, userdata,trigger)
cb_client.loop_forever()
def handle_trigger(cbClient,userdata,trigger):
route = route[0][0]
cbClient.publish("test","from handler") << this is working
t = threading.Thread(target=execute_trigger, args=[cbClient, userdata, trigger,route])
t.daemon = True
t.start()
return
def execute_trigger(cbClient,userdata,trigger,route):
print("Executing trigger {}".format(trigger))
cbClient.publish("test","from thread") # <<this publish in thread is not working
解决方案
推荐阅读
- java - Java 将字符串中的 \" 替换为 "
- jenkins - Jenkins Ant 模式获取带有时间戳的最新修改的 XLSX 文件
- python - 如何在PIL python中获取已旋转角度的文本的x,y坐标?
- angular - Ionic 3 模板解析错误:'add-thought' 不是已知元素
- java - Java 方法没有达到预期的效果。试图理解为什么
- android - CardView 内的 RecyclerView 和 Cardview 高度设置为环绕,它不是环绕高度
- c++ - 源矩形和目标矩形在 SDL 函数 SDL_RenderCopy 中如何工作
- python - 使用正则表达式提取数字
- android - 如何在没有通知的情况下为 android Oreo 创建后台服务,如社交网络应用程序 Facebook、Messenger、Zalo
- dart - 如何在颤动中制作全屏对话框?