title: OnDisconnect


离线事件是云端与客户端断开连接时自动触发的事件。 断开连接包括客户端主动断开连接,或者意外的网络中断。触发事件即执行特定的数据操作,它支持离线写入,更新和删除数据方法。详细使用请参考:完整指南-离线功能

方法

set

当客户端断开连接(例如:关闭浏览器、跳转到一个新的页面、本地的网络问题等)后写入数据,此操作会先清空指定节点再写入新的数据。

定义

set(value)

参数
参数名 说明
value Object
Array
String
Number
Boolean
null
连接中断后写入当前位置的值。
返回值

wilddog.Promise<Void>

示例
  1. var disconnectRef = wilddog.sync().ref("disconnectMessage");
  2. disconnectRef.onDisconnect().set('I disconnected!')
  3. .then(function(){
  4. console.info('disconnect operation has been executed.');
  5. })
  6. .catch(function(err){
  7. console.info('disconnect operation is failed.');
  8. });

注意:

onDisconnect() 设置的离线操作只会触发一次。
如需每次离线时都执行 set() 方法,则需要 监听连接状态,在连接建立成功后都通过 onDisconnect().set() 设置想要执行的写入操作。

update

定义

update(value)

说明

当客户端断开连接(例如:关闭浏览器、跳转到一个新的页面、本地的网络问题等)后更新指定子节点。

参数
参数名 说明
value Object 类型
包含要写入当前位置子节点的集合。
返回值

wilddog.Promise<Void>

示例
  1. var disconnectRef = wilddog.sync().ref("disconnectMessage");
  2. disconnectRef.onDisconnect().update({"message":'I disconnected!'})
  3. .then(function(){
  4. console.info('disconnect operation has been executed.');
  5. })
  6. .catch(function(err){
  7. console.info('disconnect operation is failed.');
  8. });

注意:

onDisconnect() 设置的离线操作只会触发一次。
如需每次离线时都执行 update() 方法,则需要 监听连接状态,在连接建立成功后都通过 onDisconnect().update() 设置想要执行的更新操作。

remove

定义

remove()

说明

当客户端断开连接(例如:关闭浏览器、跳转到一个新的页面、本地的网络问题等)后移除当前节点的数据。

返回值

wilddog.Promise<Void>

示例
  1. var disconnectRef = wilddog.sync().ref("disconnectMessage");
  2. disconnectRef.onDisconnect().remove()
  3. .then(function(){
  4. console.info('disconnect operation has been executed.');
  5. })
  6. .catch(function(err){
  7. console.info('disconnect operation is failed.');
  8. });

注意:

onDisconnect() 设置的离线操作只会触发一次。
如需每次离线时都执行 remove() 方法,则需要 监听连接状态,在连接建立成功后都通过 onDisconnect().remove() 设置想要执行的删除操作。

setWithPriority

当客户端断开连接后(关闭浏览器、跳转到一个新的页面、本地的网络问题等),指定的数据和其优先级会被写入当前位置。

定义

setWithPriority(value, priority)

说明

当客户端断开连接(例如:关闭浏览器、跳转到一个新的页面、本地的网络问题等)后更新指定子节点。

参数
参数名 说明
value Object
String
Number
Boolean
null
将被写入的值。
priority String
Number(non-null)
优先级数据,节点的优先级是默认排序的依据。
返回值

wilddog.Promise<Void>

示例
  1. var disconnectRef = wilddog.sync().ref("disconnectMessage");
  2. disconnectRef.onDisconnect().setWithPriority('I disconnected', 10)
  3. .then(function(){
  4. console.info('disconnect operation has been executed.');
  5. })
  6. .catch(function(err){
  7. console.info('disconnect operation is failed.');
  8. });

注意:

onDisconnect() 设置的离线操作只会触发一次。如果你想在每次断线时都执行 setWithPriority() 方法,需要在每次 监听 连接建立成功后都通过 onDisconnect().setWithPriority() 设置想要执行的写入操作。

cancel

定义

cancel()

说明

取消所有未生效的离线事件。

返回值

Void

示例
  1. var disconnectRef = wilddog.sync().ref("disconnectMessage");
  2. // 之前所有注册在该节点下的离线事件都将取消
  3. disconnectRef.onDisconnect().cancel();