更新时间:2024-06-20 06:09:04
云项目中提供消息订阅功能,当项目中的设备相关状态发生变化时(如设备注册、设备数据上报、设备离线等),开放消息平台通过 Pulsar 主动推送各种事件数据给外部合作伙伴,以满足合作伙伴对消息实时性和消息持久化的要求。
目前涂鸦基于开源的 Pulsar 系统进行了定制改进,并提供 Python 版本 Pulsar SDK。
本文通过使用 Python 开发工具 PyCharm 进行消息接收实践。
点击下载(Pulsar SDK 源码),下载 Zip 包至本地,解压缩即可。
PyCharm 打开源码工程: 点击 Open ,查找到上一步下载的解压缩后文件。
添加依赖环境
说明: 本文所使用的电脑安装的 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 中 MQ_ENV_TEST 代表测试环境。MQ_ENV_PROD 代表正式环境。
配置测试设备。
在消息订阅页面,待订阅状态 栏会显示 已订阅后,单击 消息测试 页签。
在搜索栏中输入已关联的设备 ID,单击放大镜按钮搜索后,单击选中设备。
已关联的设备设置为测试设备后,测试设备所上报的消息会发送至测试通道,以方便您进行设备功能调试。
在开发工具 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}]}
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈