Paho's MQTT Dev Toolkit

pahotoolkit的Python项目详细描述


泛美卫生组织的MQTT工具包

欢迎使用泛美卫生组织的MQTT工具包。

为了谁?为什么呢?

如果对于那些已经阅读过Paho's MQTT library and its examples文档的人来说,并且像我一样,已经感觉到api在某种程度上对板载应用程序来说是离线和复杂的,那么这个工具包就是这样的。

我个人喜欢泛美卫生组织的mqtt库,无论如何我都不想替换它。但是,我希望编写的应用程序在某种程度上熟悉我使用的框架,例如flask或sanic。 因此,通过使用具有简化api的可靠配置库来抽象底层实现。

基本配置是什么?

此工具包的基本配置使用paho的事件循环实现,方法是使用start_loopstop_loop方法,并创建一个接受不同配置参数start_async的单入口点方法。

简单用法

有关更多示例,请参阅examples目录。

importtimefrompaho.mqtt.clientimportClientfrompahotoolkitimport(init,start_async,stop_async,subscribe,json_message,)frommy_settingsimport(HOST,PORT,USERNAME,PASSWORD,LOG_CONFIG)@subscribe('/temperature')defhandle_temperature(mqtt_client:Client,userdata,message):print(f'Got {message}')@subscribe('/my/topic')@json_message()# by default, non-json messages in the topic are ignoreddeflisten_my_topic(payload:dict,*args,**kwargs):# todo: do something with the payloadpass@on_connect()defclient_connected(mqtt_client:Client,*args,**kwargs):"""Publish something on_connect."""mqtt_client.publish('/clients','Paho\'s MQTT toolkit message!')# log_config => https://docs.python.org/3/library/logging.config.html#logging.config.dictConfig# the default MQTT Client uses the default's MQTT Client constructor# https://github.com/eclipse/paho.mqtt.python#client-1defmain():client:Client=start_async(host=HOST,port=PORT,# port default to 1883 if not givenusername=USERNAME,password=PASSWORD,# optional fieldsinitialize=False,log_config=LOG_CONFIG)# optional fieldsinit(client)# only required if initialize=False, else by default is automatically calledwhileTrue:time.sleep(1)# or do something in this thread...if__name__=='__main__':try:main()finally:stop_async()

联系人

阿努福索利斯

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
找不到足够的连续内存会导致OOM吗?   java如何计算一个矩形可以放入另一个矩形的次数?   谷歌地图api java   java Autowired批注在AuthenticationSuccessHandler中返回null   Java电话号码格式正则表达式   eclipse我希望能够同时选择多个复选框?Java SWT   java j2objc可以用于生成不适用于iOS的目标C代码吗?   使用cUrl将PHP post数组转换为java servlet   java playpac4j和Play 2.5:@requireAuthentication注释导致stacktrace   java为什么在Javamail中连接超时?   java使用SwingUtilities。main方法中的invokeLater()   如何在名为from Unity的Java插件中创建Android处理程序