更新时间:2024-06-20 06:57:49下载pdf
涂鸦基于开源的 Pulsar 进行了定制改进,当项目中的设备相关状态发生变化时(如设备注册、设备数据上报、设备离线等),涂鸦会转发消息。方便您及时获取设备信息,并可以分析或存储这些信息。本文介绍如何使用涂鸦 Java 版本 Pulsar SDK 进行消息接收实践。
使用 IntelliJ IDEA 打开源码工程。
单击 Open,查找到下载的 Pulsar SDK 解压缩后文件。
修改 open-mq-sdk/src/main/java/com.tuya.open.sdk/mq/MqConsumer.java
文件参数,修改 Java 工程为测试环境。具体参数说明可查看 mq/MqEnv.java
文件。
private MqEnv env = MqEnv.TEST;
MqEnv.TEST
代表测试环境。MqEnv.PROD
代表正式环境。修改 open-mq-sdk/src/main/java/com.tuya.open.sdk/example/ConsumerExample.java
文件参数。
String url = MqConfigs.CN_SERVER_URL;
String accessId = "xt*****ff**n1****8ufo";
String accessKey = "479bcb7345******582d9c******4ef7";
参数说明如下:
参数 | 说明 |
---|---|
url |
接入地址。根据调用的区域进行选择:
mq/MqConfigs.java 。 |
accessId |
填写 云项目 中 API 授权密钥的 Access ID。 |
accessKey |
填写云项目中 API 授权密钥的 Access Secret。 |
配置测试设备。
在云项目的 消息订阅 页面,开启消息订阅。
待订阅状态显示 已开启 后,单击 测试环境 页签。
在搜索栏中输入已关联的设备 ID,单击放大镜按钮搜索后,单击选中设备。
已关联的设备设置为测试设备后,测试设备所上报的消息会发送至测试通道,以方面您进行设备功能调试。
在开发工具 IntelliJ IDEA 上,右键单击 ConsumerExample.java
文件,选择 Run,执行该程序。
通过智能生活 App 操作设备。
在开发工具 IntelliJ IDEA 上,自动获取到消息推送展示。
接收的消息
Message received: {
"data": "mT9eqNz5MCgibKjEC+zsikNpoukkmad6K/uS18FozRETIriMEApJBXXm5o37QmMFzQtf9wFhkSQ6IBE2P3yYPrgKoKYnbLa+mN1TUCda/JYJWG9dqUPOlAUjyey1/PKjWu8doYvgN8fCe0HIMZBTI1eVfe4RzVkEHvaaFLVF+lpfqGdvTWhlLNbh6092SG9MsR8Aq2sXHt2naIfIT36xYU9xPHy0C65K3HDuQgwi69fRWhXdA1LWvsKPavTOappD",
"protocol": 4,
"pv": "2.0",
"sign": "d6be290bd0ffa196c313ecd315e6ff72",
"t": 1622701486365
}, seq = 0, time = 1622701486373, consumed time = 1622701486652
拼接参数说明如下:
seq
:获取此消息的队列 ID。time
:客户端发布此消息时间的时间戳。consumed time
:系统打印信息时间的时间戳。解析 Data 数据
the real message data: {
"dataId": "642769b3-c434-11eb-87b5-02425b0322e7",
"devId": "vdevo162201920765824",
"productKey": "atxdggtv9ddjt8xx",
"status": [{
"code": "switch_led",
"t": 1622701486258,
"value": true,
"20": "true"
}]
}
Data
数据解析方法参考 数据签名。SDK 中已封装 Data
解密方法,具体请查看 mq.AESBase64Utils.java
文件。
接收的消息
Message received: {
"data": "UoHAZ1lTSAZRr0HFrePEw/rsMDlKAOIDeSjFQbf35K4TIriMEApJBXXm5o37QmMFzQtf9wFhkSQ6IBE2P3yYPrgKoKYnbLa+mN1TUCda/JYJWG9dqUPOlAUjyey1/PKjWu8doYvgN8fCe0HIMZBTI1eVfe4RzVkEHvaaFLVF+loWkfytt13z5nHmD9EPdmOZOxGcbyvjGOOp9iQOA3Om2XPur4DMxX0M+V+fFkyD9OXFRR9d0DA6J4LHmvDBtfO3U4HBd5MyELCdYJR7B+jCuVAcflFEGZKfv+5vINIuDZu0q1Ono+G6AcEyfmhIjrrY8EpmfMW/mWvfgGAreIOThH5WroVQpgbzIDgcGsXAsW1zzZYe27YlWKXleLLBEBcQx6Y2gSutLqfsu0MA59GNtg==",
"protocol": 4,
"pv": "2.0",
"sign": "f055d71c2caae3549a53adddde16aaec",
"t": 1622701494099
}, seq = 1, time = 1622701494099, consumed time = 1622701494059
解析 Data 数据
the real message data: {
"dataId": "68ce83d2-c434-11eb-87b5-02425b0322e7",
"devId": "vdevo162201920765824",
"productKey": "atxdggtv9ddjt8xx",
"status": [{
"code": "control_data",
"t": 1622701494064,
"28": "100b00193020800000000",
"value": "{\"bright\":0,
\"change_mode\":\"gradient\",
\"h\":176,
\"s\":403,
\"temperature\":0,
\"v\":520
}"
}]
}
目前消息订阅开启后,只支持全部消息类型的接收。
排查步骤如下:
通过消息转发量进行收费,具体可以参考 产品定价。
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈