设备通过携带解析标记?_sn=default
的自定义Topic上报自定义格式消息时,物联网平台收到消息数据后,需调用消息解析脚本将自定义格式数据转换为JSON结构体,再流转给后续业务系统。本文介绍如何在物联网平台控制台提交消息解析脚本实现自定义格式数据解析。
使用与限制
仅华东2(上海)、日本(东京)地域支持自定义Topic消息解析。
仅通过MQTT协议接入的设备支持自定义Topic消息解析。
仅解析设备上报物联网平台云端的消息数据,不解析云端下行数据。
解析上报消息的Payload,并返回解析后的Payload。
解析前后,消息所在Topic不变。例如,设备发送到
/${productKey}/${deviceName}/user/update
的消息,解析后仍在该Topic中。
解析标记
配置设备端时,需在发布消息的自定义Topic后添加消息解析标记?_sn=default
。
物联网平台仅解析设备通过携带标记的Topic发布的消息数据。
例如,设备发送到Topic /${productKey}/${deviceName}/user/update
的消息需要解析为JSON格式。在开发设备端时,就需配置该Topic为:/${productKey}/${deviceName}/user/update?_sn=default
。
在物联网平台创建自定义Topic时按正常Topic定义,不添加该解析标记。
操作步骤
登录物联网平台控制台。
在实例概览页面的全部环境下,找到对应的实例,单击实例ID或备注名称。
重要目前仅开通企业版实例服务的地域下,执行此步骤。其他地域,请跳过此步骤,执行下一步。地域及实例的支持说明,请参见实例概述。
在左侧导航栏,选择 。
在产品页面,单击产品对应的查看。
在产品详情页面,单击消息解析页签。
选择脚本语言,然后在编辑脚本下的输入框中输入脚本。
支持的脚本语言
需定义的函数
示例代码
JavaScript(ECMAScript 5)
transformPayload()
Python 2.7
transform_payload()
PHP 7.2
transformPayload()
说明如果产品的数据格式为透传/自定义,还需编写物模型消息解析脚本。物模型消息解析脚本编写指导,请参见提交物模型消息解析脚本。
测试脚本。
在模拟输入下,选择模拟类型为自定义,并选择设备和Topic。
输入模拟的设备上报数据,单击执行。
确认脚本可用后,单击提交,将脚本提交到物联网平台系统。
可选:更新消息解析脚本
提交消息解析脚本成功后,您可在消息解析页签,修改或删除脚本代码后,参考本文操作步骤重新测试和提交。提交成功后,等待一分钟,就会对该产品下已有设备和新增设备的消息解析服务生效。
修改脚本代码重新提交后,请同步修改消息解析服务相关业务逻辑,否则可能导致相关业务中断。
删除脚本代码重新提交后,该产品下设备消息解析服务不可用、用户业务中断。
请谨慎操作。
相关文档
- 了解消息解析流程等基本信息,请参见什么是消息解析。
有关透传/自定义格式的物模型数据解析说明,请参见提交物模型消息解析脚本。
- 有关调用API向设备发送消息,请参见物模型使用的API和消息通信API。