變更推送及訂閱
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訂閱,會導致數據被本地調試機器訂閱走,請一定注意訂閱的環境。
數據模型訂閱接口及代碼請參考
http://bestwisewords.com/document_detail/140317.html?spm=a2c4g.11174283.6.654.3eb152d0LWfvKO
3.設備數據訂閱
前置條件
1.產生事件的設備已經添加到小區,并添加到了應用服務平臺
使用限制
1.當存在多臺機器使用同一個Appkey訂閱時,推送服務將以隨機的方式推送到訂閱的機器上。改方式有利于集群模式部署和訂閱。但如果有本地調試的機器也使用同樣Appkey訂閱,會導致數據被本地調試機器訂閱走,請一定注意訂閱的環境。
設備數據訂閱代碼請參考
http://bestwisewords.com/document_detail/145112.html?spm=a2c4g.11186623.6.656.1a8c907fuDGWJx