swan.closeSocket
解释:关闭 WebSocket 连接。必须在 WebSocket 打开期间调用 swan.closeSocket 才能关闭。
方法参数
Object object
object参数说明
属性名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
code | Number | 否 | 一个数字值表示关闭连接的状态号,表示连接被关闭的原因。如果这个参数没有被指定,默认的取值是1000 (表示正常连接关闭) | |
reason | String | 否 | 一个可读的字符串,表示连接被关闭的原因。这个字符串必须是不长于123字节的 UTF-8 文本(不是字符) | |
success | Function | 否 | 接口调用成功的回调函数 | |
fail | Function | 否 接口调用失败的回调函数 | ||
complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
示例
扫码体验
请使用百度APP扫码
图片示例
代码示例
- 在 js 文件中
Page({
onShow() {
let that = this;
swan.connectSocket({
url: 'wss://echo.websocket.org',
header: {},
success: res => {
console.log('connectSocket success', res);
swan.showToast({
title: 'websocket已打开',
icon: 'none'
});
},
fail: err => {
console.log('connectSocket fail', err);
}
});
swan.onSocketOpen(function () {
that.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: 'close reason',
success: res => {
swan.showModal({
title: 'websocket已关闭',
});
console.log('WebSocket链接关闭成功', res);
},
fail: err => {
console.log('WebSocket链接关闭失败', err);
}
});
}
}
});
错误码
- Android
错误码 | 说明 |
---|---|
202 | 解析失败,请检查参数是否正确 |
302 | 找不到调起协议对应端能力方法 |
1001 | 执行失败 |
- iOS
错误码 | 说明 |
---|---|
4 | 参数有误 |