百度智能小程序 关闭连接
2020-09-05 18:01 更新
swan.closeSocket
解释:关闭 WebSocket 连接。必须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。
方法参数
Object object
object 参数说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
code | Number | 否 | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是 1000 (表示正常连接关闭) | |
reason | String | 否 | 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于 123 字节的 UTF-8 文本(不是字符) | |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 接口调用失败的回调函数 | ||
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例
图片示例
代码示例
<button type="primary" disabled="{{!openWebsocket}}" bindtap="closeSocket">关闭websocket</button>
Page({
onShow() {
swan.connectSocket({
url: 'wss://echo.websocket.org',
success: res => {
console.log('connectSocket success', res);
swan.showToast({
title: 'websocket已打开',
icon: 'none'
});
},
fail: err => {
console.log('connectSocket fail', err);
swan.showToast({
title: 'websocket打开失败',
icon: 'none'
});
}
});
swan.onSocketOpen(() => {
this.setData({'openWebsocket': true});
});
},
closeSocket() {
// 注意这里有时序问题,
// 如果 swan.connectSocket 还没回调 swan.onSocketOpen,而先调用 swan.closeSocket,那么就做不到关闭 WebSocket 的目的。
// 必须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。
let openWebsocket = this.getData('openWebsocket');
if (openWebsocket) {
swan.closeSocket({
code: '1001',
reason: 'user tap',
success: res => {
swan.showModal({
title: 'websocket已关闭'
});
console.log('WebSocket链接关闭成功', res);
},
fail: err => {
swan.showToast({
title: 'websocket关闭失败',
icon: 'none'
});
console.log('connectSocket fail', err);
}
});
}
}
});
以上内容是否对您有帮助:
更多建议: