变更推送及订阅

更新时间:

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