数据集
对于存储在数据集中的数据,APP可以进行实时消息订阅,进行订阅后,APP和云端建立长连接, 数据集中的数据发生改变后,云端会将最新的数据实时推送给APP, 实时消息要用到如下类, 在项目相关的类的头部添加如下代码:
#import "ACClassDataManager.h"
代码示例
使用之前, 需要先到控制台/存储管理/数据集中设置/查看对应的数据集, 以如下数据集为例(设备逻辑id:12):
订阅数据集实时推送数据
//新建数据集推送主键对象
ACObject *primaryKey = [[ACObject alloc] init];
//设置主键值
[primaryKey putInteger:@"deviceID" value:12];
//订阅数据集对应主键值的数据推送
[ACClassDataManager subscribeClass:@"light_action_data"
primaryKey:primaryKey
callback:^(NSError *error) {
if (error) {
//订阅失败提示
return;
}
//订阅成功提示
}];
相关注意事项如下:
- 数据集对象中涉及到字符串比较多, 如果遇到订阅失败请检查拼写是否正确
- 如果一个数据集有两个及以上主键, 则必须按顺序订阅, 即如果要订阅主键二, 则实现方式为订阅主键一和主键二, 不能单独订阅主键二
- 如果主键是设备id, 那么该设备必须与当前用户是绑定关系
取消订阅数据集实时推送数据
//新建数据集推送主键对象
ACObject *primaryKey = [[ACObject alloc] init];
//设置主键值
[primaryKey putInteger:@"deviceID" value:12];
//订阅数据集对应主键值的数据推送
[ACClassDataManager unSubscribeClass:@"light_action_data"
primaryKey:primaryKey
callback:^(NSError *error) {
if (error) {
//取消订阅失败提示
return;
}
//取消订阅成功提示
}];
相关注意事项:
- 我们也提供了一个unSubscribeAllClassData的接口, 如果有需要可以自己选择。
取消订阅所有数据集实时推送数据:
[ACClassDataManager unSubscribeAllClassData];
设置数据集实时推送回调
[ACClassDataManager setClassMessageHandler:^(NSString *className,
ACClassDataOperationType opType,
ACObject *payload) {
//payload中可以获取详细的推送数据
//NSInteger deviceId = [payload get:@"deviceID"];
switch (opType) {
case ACClassDataOperationTypeCreate:
//数据集新增 deviceId = 12 的数据行
break;
case ACClassDataOperationTypeUpdate:
//数据集更新 deviceId = 12 的数据行
break;
case ACClassDataOperationTypeReplace:
//数据集替换 deviceId = 12 的数据行
break;
case ACClassDataOperationTypeDelete:
//数据集删除 deviceId = 12 的数据行
break;
}
}];
相关注意事项:
- 所有的数据集推送消息都会回调这一个方法。
- 可在程序任意位置设置此回调处理方法。