title: 离线事件
离线事件相关的方法。
方法
wilddog_onDisconnectSetValue
定义
Wilddog_Return_T wilddog_onDisconnectSetValue(Wilddog_T wilddog, Wilddog_Node_T *p_node, onDisConnectFunc callback, void* arg)
说明
当云端检测到客户端离线时,设置当前路径的数据,数据格式为 Wilddog_Node_T。回调函数用于判断该离线事件是否成功注册。
参数
| 参数名 | 说明 |
|---|---|
| wilddog | Wilddog_T 类型。当前路径对应 Wilddog Sync 实例。 |
| p_node | Wilddog_Node_T 指针类型。指向节点数据的指针,注意,头节点即为当前路径。 |
| callback | onDisConnectFunc 类型。服务端回应数据或者回应超时触发的回调函数。 |
| arg | void 指针类型。可为 NULL,用户给回调函数传入的参数。 |
返回值
成功返回 0,否则返回对应 错误码,同时会触发回调函数,错误码也能够在回调函数中查询。
示例
STATIC void onSetCallback(void* arg, Wilddog_Return_T err){if(err < WILDDOG_HTTP_OK || err >= WILDDOG_HTTP_NOT_MODIFIED){wilddog_debug("offline set error!");return;}wilddog_debug("offline set success!");return;}int main(void){Wilddog_T wilddog = 0;Wilddog_Node_T * p_node = NULL;/* create a node to "wilddog", value is "123456" */p_node = wilddog_node_createUString(NULL,"123456");//<url>即希望设置数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);//注意,这里省略了对 wilddog_onDisconnectSetValue 返回值的检查wilddog_onDisconnectSetValue(wilddog, p_node, onSetCallback, NULL);wilddog_node_delete(p_node);while(1){wilddog_trySync();}wilddog_destroy(&wilddog);}
wilddog_onDisconnectPush
定义
Wilddog_Return_T wilddog_onDisconnectPush( Wilddog_T wilddog, Wilddog_Node_T *p_node, onDisConnectFunc callback, void* arg)
说明
当云端检测到客户端离线时,在当前路径下生成一个子节点,数据格式为 Wilddog_Node_T。回调函数用于判断该离线事件是否成功注册。
参数
| 参数名 | 说明 |
|---|---|
| wilddog | Wilddog_T 类型。当前路径对应 Wilddog Sync 实例。 |
| p_node | Wilddog_Node_T 指针类型。指向节点数据的指针,注意,头节点即为当前路径。 |
| callback | onDisConnectFunc 类型。服务端回应数据或者回应超时触发的回调函数。 |
| arg | void 指针类型。可为 NULL,用户给回调函数传入的参数。 |
返回值
成功返回 0,否则返回对应 错误码,同时会触发回调函数,错误码也能够在回调函数中查询。
示例
STATIC void onPushCallback(void* arg, Wilddog_Return_T err){if(err < WILDDOG_HTTP_OK || err >= WILDDOG_HTTP_NOT_MODIFIED){wilddog_debug("offline push failed");return;}wilddog_debug("offline push success");return;}int main(void){Wilddog_T wilddog = 0;Wilddog_Node_T * p_node = NULL, *p_head = NULL;p_head = wilddog_node_createObject(NULL);p_node = wilddog_node_createNum("2",1234);wilddog_node_addChild(p_head, p_node);//<url>即希望推送数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);//注意,这里省略了对wilddog_onDisconnectPush返回值的检查wilddog_onDisconnectPush(wilddog, p_head, onPushCallback, NULL);wilddog_node_delete(p_head);while(1){wilddog_trySync();}wilddog_destroy(&wilddog);}
wilddog_onDisconnectRemoveValue
定义
Wilddog_Return_T wilddog_onDisconnectRemoveValue(Wilddog_T wilddog, onDisConnectFunc callback, void* arg)
说明
当云端检测到客户端离线时,删除当前路径及子路径下所有数据,数据格式为 Wilddog_Node_T。回调函数用于判断该离线事件是否成功注册。
参数
| 参数名 | 说明 |
|---|---|
| wilddog | Wilddog_T 类型。当前路径对应 Wilddog Sync 实例。 |
| callback | onDisConnectFunc 类型。服务端回应数据或者回应超时触发的回调函数。 |
| arg | void 指针类型。可为 NULL,用户给回调函数传入的参数。 |
返回值
成功返回 0,否则返回对应 错误码,同时会触发回调函数,错误码也能够在回调函数中查询。
示例
STATIC void onDeleteCallback(void* arg, Wilddog_Return_T err){if(err < WILDDOG_HTTP_OK || err >= WILDDOG_HTTP_NOT_MODIFIED){wilddog_debug("offline delete failed!");return;}wilddog_debug("offline delete success!");return;}int main(void){BOOL isFinished = FALSE;Wilddog_T wilddog = 0;//<url>即希望删除数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);//注意,这里省略了对wilddog_onDisconnectRemoveValue返回值的检查wilddog_onDisconnectRemoveValue(wilddog, onDeleteCallback, NULL);while(1){wilddog_trySync();}wilddog_destroy(&wilddog);}
wilddog_cancelDisconnectOperations
定义
Wilddog_Return_T wilddog_cancelDisconnectOperations(Wilddog_T wilddog, onDisConnectFunc callback, void* arg)
说明
取消该 Wilddog Sync 实例设置的所有离线事件。
参数
| 参数名 | 说明 |
|---|---|
| wilddog | Wilddog_T 类型。当前路径对应 Wilddog Sync 实例。 |
| callback | onDisConnectFunc 类型。服务端回应数据或者回应超时触发的回调函数。 |
| arg | void 指针类型。可为 NULL,用户给回调函数传入的参数。 |
返回值
成功返回 0,否则返回对应 错误码。
示例
STATIC void onCancelCallback(void* arg, Wilddog_Return_T err){if(err < WILDDOG_HTTP_OK || err >= WILDDOG_HTTP_NOT_MODIFIED){wilddog_debug("offline operation cancel failed!");return;}wilddog_debug("offline operation cancel success!");return;}int main(void){Wilddog_T wilddog = 0;//<url>即希望删除数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);//注意,这里省略了对wilddog_cancelDisconnectOperations返回值的检查wilddog_cancelDisconnectOperations(wilddog, onCancelCallback, NULL);while(1){wilddog_trySync();}wilddog_destroy(&wilddog);}
wilddog_goOffline
定义
void wilddog_goOffline(void)
说明
断开客户端和云端的连接,之前若注册了离线事件则云端会触发离线事件。
示例
int main(void){Wilddog_T wilddog = 0;//<url>即希望删除数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);wilddog_goOffline();}
wilddog_goOnline
定义
void wilddog_goOnline(void)
说明
若客户端处于离线状态,则重新连接云端服务,之前若注册了监听事件,则 SDK 会重新发送监听请求。注意:重连后会触发监听回调,返回当前的数据。
示例
int main(void){Wilddog_T wilddog = 0;//<url>即希望删除数据的url,如coaps://<SyncAppID>.wilddogio.com/a/b/cwilddog = wilddog_initWithUrl(<url>);wilddog_goOnline();}
