更新时间:2024-09-10 01:49:13
云项目中提供消息订阅功能,当项目中的设备相关状态发生变化时(如设备注册、设备数据上报、设备离线等),开放消息平台通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求。
目前涂鸦基于开源的 Pulsar 系统进行了定制改进,并提供 Python 版本 Pulsar SDK。
本文通过使用 Python 开发工具 PyCharm 进行消息接收实践。
单击下载 Pulsar SDK 源码,下载 Zip 包至本地,解压缩即可。
PyCharm 打开源码工程:单击 Open ,查找到上一步下载的解压缩后文件。
添加依赖环境。
py2 版本依赖
py3 版本依赖
本文所使用的电脑安装的 Python 版本为 3.8。
查看依赖包。
单击顶部导航条 PyCharm > Preferences,选择 Project:python > Python Interpreter,查看本项目环境。
修改事例代码 example/index.js
文件参数。本文以 测试通道 为例做展示。
# accessId, accessKey,serverUrl,MQ_ENV
ACCESS_ID = "xt*****ff**n1****8ufo"
ACCESS_KEY = "479bcb7345******582d9c******4ef7"
WSS_SERVER_URL = "wss://mqe.tuyacn.com:8285/"
MQ_ENV = MQ_ENV_PROD
参数说明如下:
ACCESS_ID
:填写云开发平台中 API 授权密钥的 Access ID。
ACCESS_KEY
:填写云开发平台中 API 授权密钥的 Access Secret。
WSS_SERVER_URL
:务必修改为私有云对应域名地址。
MQ_ENV
:消息订阅通道
MQ_ENV_PROD
:正式环境MQ_ENV_TEST
:测试环境MQ_ENV
中 MQ_ENV_TEST
代表测试环境。MQ_ENV_PROD
代表正式环境。
测试设备所上报的消息会发送至测试通道,以方便您进行设备功能调试。
在开发工具 PyCharm 上,选中 pythonWssConsumerDemo.py
文件,右键单击 ,并执行 RUN。
通过 App 端操作设备。
在开发工具 PyCharm 上自动获取到消息推送展示。
数据展示。字段含义请参考文档 消息类型 。
接收的消息
received message origin payload: {"data":"5dBU8WiRS1+zydoFTtaVKuL+DnRGSSj1VvrRH4pN1kvawIq2mG/fZTd9TCimqpGPzQtf9wFhkSQ6IBE2P3yYPj6CrsqFEQvL9PFeHpD9Z9KadznFwSQX6sgRa2f2ANFHDTC8pZ0+fLnWge7AqPG4LdxobOPC7kNpk92hmXjB0PEOZ2Du4MbP4NSN49QcJ4MPoKVOkbMxkxYUbynUW5fQ6FgHYZYcTUp+a0vF/oS3VL3jGH5tallpI10RZxofJ72f","protocol":4,"pv":"2.0","sign":"b8a548131304b49b524fca193f9ffd63","t":1630979005761}
解析 payload 数据
decryptContentData={"dataId":"fe3a7d80-0f7c-11ec-8511-024283c73485","devId":"vdev******86991","productKey":"na****jz","status":[{"1":"true","code":"switch_led","t":1630979005725,"value":true}]}
payload 数据解析方法参考 数据签名。SDK 中已封装 payload 解密方法。
接收的消息
received message origin payload: {"data":"z/xrNsO26LmxprqP0OaMSXdSXy2jAEiz0blUCnlUZe7awIq2mG/fZTd9TCimqpGPzQtf9wFhkSQ6IBE2P3yYPj6CrsqFEQvL9PFeHpD9Z9KadznFwSQX6sgRa2f2ANFHDTC8pZ0+fLnWge7AqPG4LSlV4VEv7NtZ0T9wsM0xsQe+Gd3lcDRjtoWkeHTaIhvNzw8Y01IymwbZVRlVvpO3bLeIRohJoYtnI0lpflt6tcoKE7H3tlNNyLhx/y903ldy7z0o3iD5KROUiGtsAvdO0WfAsVxl87x4EbH6A7FLPOR2vyfiUckMP3+KlQR/CA6UtuuExvaaSNCeSx8NL2Rpmw==","protocol":4,"pv":"2.0","sign":"7ce23e6fb11386020cc4a58524cf2a4e","t":1630979195061}
解析 Data 数据
decryptContentData={"dataId":"6f0f12a7-0f7d-11ec-8511-024283c73485","devId":"vdev******86991","productKey":"na****jz","status":[{"2":"white","code":"work_mode","t":1630979195023,"value":"white"},{"3":"764","code":"bright_value_v2","t":1630979195023,"value":764}]}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈