W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
解釋:關閉 WebSocket 連接。必須在 WebSocket 打開期間調用 swan.closeSocket 才能關閉。
Object object
屬性名 | 類型 | 必填 | 默認值 | 說明 |
---|---|---|---|---|
code | Number | 否 | 一個數(shù)字值表示關閉連接的狀態(tài)號,表示連接被關閉的原因。如果這個參數(shù)沒有被指定,默認的取值是 1000 (表示正常連接關閉) | |
reason | String | 否 | 一個可讀的字符串,表示連接被關閉的原因。這個字符串必須是不長于 123 字節(jié)的 UTF-8 文本(不是字符) | |
success | Function | 否 | 接口調用成功的回調函數(shù) | |
fail | Function | 否 接口調用失敗的回調函數(shù) | ||
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
<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);
}
});
}
}
});
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: