python – Mosquitto和last will(遗嘱)的问题

python – Mosquitto和last will(遗嘱)的问题,第1张

概述我正在使用Mosquitto和Paho的 Python实现来尝试传达几个程序.当我使用最后一个功能时,我遇到了一些麻烦.我的代码是这样的: 会员键: import paho.mqtt.client as mqttdef on_message(client, userdata, msg): print 'Received: ' + msg.payloadclient = mqtt.Cl 我正在使用Mosquitto和Paho的 Python实现来尝试传达几个程序.当我使用最后一个功能时,我遇到了一些麻烦.我的代码是这样的:

会员键:

import paho.mqtt.clIEnt as mqttdef on_message(clIEnt,userdata,msg):    print 'Received: ' + msg.payloadclIEnt = mqtt.ClIEnt()clIEnt.on_message = on_messageclIEnt.connect('localhost',1883)clIEnt.subscribe('hello/#')clIEnt.loop_forever()

出版商:

import paho.mqtt.clIEnt as mqttclIEnt = mqtt.ClIEnt()clIEnt.will_set('hello/will','Last will',False)clIEnt.connect('localhost',1883)clIEnt.publish('hello/world','Regular msg',False)clIEnt.disconnect()

输出:

Received: Last will

我应该只收到常规消息,因为我使用clIEnt.disconnect()来关闭连接.如果我评论will_set行,我会收到常规消息.我也尝试在同一主题上发布它们并且它不起作用.

解决方法 您可以尝试使用单一方法只发布一条消息,如下所示:

import paho.mqtt.publish as publishpublish.single('hello/world',False,'localhost',1883,'publisher',10,{'topic': 'hello/will','payload': 'Will msg','qos': 0,'retain': False})

https://pypi.python.org/pypi/paho-mqtt#single

我猜想问题是你在发布实际完成之前断开连接,这可能就是你看到遗嘱信息的原因.

编辑 –
当我使用mosquitto_sub -v -t’hello /#’运行你的代码时,我看到了正常的消息和正在传递的意愿.

EDIT2 –

这对我来说很好:

import paho.mqtt.clIEnt as mqttclIEnt = mqtt.ClIEnt()clIEnt.will_set('hello/will',False)clIEnt.loop();clIEnt.disconnect()clIEnt.loop();
总结

以上是内存溢出为你收集整理的python – Mosquitto和last will(遗嘱)的问题全部内容,希望文章能够帮你解决python – Mosquitto和last will(遗嘱)的问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1194173.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存