武器级mqtt包编解码器。

mqtt-codec的Python项目详细描述


武器级mqtt包编解码器(codec)。

状态

mqtt codec包是 MQTT 3.1.1 包编码器和解码器(编解码器)。图书馆的测试覆盖率很高 (~94%),在分布式物联网中表现良好 数千个节点。

安装

mqtt编解码器包可以来自pypi.org,其中 pip

pip install mqtt-codec

用法

编码/解码循环如下:

>>>fromioimportBytesIO>>>frombinasciiimportb2a_hex>>>importmqtt_codec.packet>>>importmqtt_codec.io>>>>>># Encode a Connect packet>>>will=mqtt_codec.packet.MqttWill(qos=0,topic='hello',message='message',retain=True)>>>connect=mqtt_codec.packet.MqttConnect(client_id='client_id',clean_session=False,keep_alive=0,will=will)>>>withBytesIO()asf:...num_bytes_written=connect.encode(f)...buf=f.getvalue()...>>>assertlen(buf)==num_bytes_written>>>print('0x{} ({} bytes)'.format(b2a_hex(buf),len(buf)))0x102500044d515454042400000009636c69656e745f6964000568656c6c6f00076d657373616765(39bytes)>>>>>># Decode the connect packet and assert equality.>>>withmqtt_codec.io.BytesReader(buf)asf:...num_bytes_read,decoded_connect=connect.decode(f)...>>>assertlen(buf)==num_bytes_written>>>assertconnect==decoded_connect>>>print('  Encoded {}'.format(connect))EncodedMqttConnect(client_id='client_id',clean_session=False,keep_alive=0,username=***,password=***,will=MqttWill(topic=hello,payload=0x6d657373616765,retain=True,qos=0))>>>print('= Decoded {}'.format(decoded_connect))=DecodedMqttConnect(client_id=u'client_id',clean_session=False,keep_alive=0,username=***,password=***,will=MqttWill(topic=hello,payload=0x6d657373616765,retain=True,qos=0))

python需求

mqtt-codec项目已经在linux上针对以下内容进行了测试 环境:

  • python 2.7版
  • Python3.4
  • Python3.5
  • python 3.6
  • Python3.7

python版本python 3.0-3.3可以工作,但不能作为 项目持续集成基础设施。

库要求

当运行低于3.4的python版本时,enum34包是 必修的。没有其他包装要求。

项目基础设施

该项目通过公共基础设施进行协调,可在 几个地方:

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

推荐PyPI第三方库


热门话题
java静态对象初始化   java请求的资源上不存在“Accesscontrolalloworigin”头。起源http://localhost:4200因此不允许访问   java i无法通过executor的submit方法处理列表的所有记录   javadoc中的java文档逻辑   java如何使RCPPlugin独立   java使用cobertura插件跳过*测试*   验证Java处理多个可能未知的日期/时间格式   java将JPanel添加到JFrame   BB 7.0中的黑莓Java标签   java动态地向注释处理环境添加类型   java如何将头信息作为键值对传递给使用jersey的rest服务   java使用ImageJ调整图像大小并裁剪图像   为什么Java8的ToIntFunction<t>不扩展函数<t,Integer>   java无法向Jackson ObjectMapper类注册模块   解析如何将此jsonarray解析为字符串或数组java   如何从Java调用具有数值参数的Scala方法   类如何从ColdFusion实现Java接口?   java如何让线程只添加到一个带有同步