变更推送及订阅
1.变更推送订阅
推送topic定义
各类数据变更使用不同的topic进行定义,便于ISV订阅不同的业务消息,以及做权限控制。/sys/community/${appkey}/${biz}/change,其中${appkey}需要替换成你的Appkey,${biz}的定义如下
业务类型
数据类型 | topic | 说明 |
空间 | /sys/appkey/${appkey}/community/space/change | 当空间信息发生变化时推送 |
公告 | /sys/appkey/${appkey}/community/message/change | 当小区公告有新增发布时推送 |
用户 | /sys/appkey/${appkey}/community/user/change | 当新增用户,修改用户时推送 |
格式示例
{
"communityId":123,
"ids":["XXXXXXX"],
"type":"insert/delete/update/publish"
}
使用限制
只能订阅到Appkey有权限的小区数据,有权限的前提为,小区是使用Appkey创建的,或者小区购买了Appkey对应的应用
订阅示例
String appKey = "your_appkey";
String appSecret = "your_appkey_secrect";
Profile profile = Profile.getAppKeyProfile(${httpsUrl}, appKey, appSecret);
MessageClient client = MessageClientFactory.messageClient(profile);
client.connect(messageToken -> {
System.out.println(messageToken.getMessage());
return MessageCallback.Action.CommitSuccess;
});
SDK引入
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>iot-client-message</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>com.aliyun</groupId>
<artifactId>aliyun-java-sdk-core</artifactId>
<version>3.7.1</version>
</dependency>
2.DOP数据订阅
前置条件
1.产生事件的设备已经添加到小区,并添加到了应用服务平台
2.订阅数据的Appkey,必须是申请小区的Appkey
使用限制
1.当存在多台机器使用同一个Appkey订阅时,推送服务将以随机的方式推送到订阅的机器上。改方式有利于集群模式部署和订阅。但如果有本地调试的机器也使用同样Appkey订阅,会导致数据被本地调试机器订阅走,请一定注意订阅的环境。
数据模型订阅接口及代码请参考
https://help.aliyun.com/document_detail/140317.html?spm=a2c4g.11174283.6.654.3eb152d0LWfvKO
3.设备数据订阅
前置条件
1.产生事件的设备已经添加到小区,并添加到了应用服务平台
使用限制
1.当存在多台机器使用同一个Appkey订阅时,推送服务将以随机的方式推送到订阅的机器上。改方式有利于集群模式部署和订阅。但如果有本地调试的机器也使用同样Appkey订阅,会导致数据被本地调试机器订阅走,请一定注意订阅的环境。
设备数据订阅代码请参考
https://help.aliyun.com/document_detail/145112.html?spm=a2c4g.11186623.6.656.1a8c907fuDGWJx