W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
創(chuàng)建一個 WebSocket 連接;一個微信小程序同時只能有一個 WebSocket 連接,如果當前已存在一個 WebSocket 連接,會自動關閉該連接,并重新創(chuàng)建一個 WebSocket 連接。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|
url | String | 是 | 開發(fā)者服務器接口地址,必須是 wss 協(xié)議,且域名必須是后臺配置的合法域名 | |
data | Object | 否 | 請求的數(shù)據(jù) | |
header | Object | 否 | HTTP Header , header 中不能設置 Referer | |
method | String | 否 | 默認是GET,有效值: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | |
protocols | StringArray | 否 | 子協(xié)議數(shù)組 | 1.4.0 |
success | Function | 否 | 接口調用成功的回調函數(shù) | |
fail | Function | 否 | 接口調用失敗的回調函數(shù) | |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
wx.connectSocket({
url: 'test.php',
data:{
x: '',
y: ''
},
header:{
'content-type': 'application/json'
},
protocols: ['protocol1'],
method:"GET"
})
監(jiān)聽WebSocket連接打開事件。
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res) {
console.log('WebSocket連接已打開!')
})
監(jiān)聽WebSocket錯誤。
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res){
console.log('WebSocket連接已打開!')
})
wx.onSocketError(function(res){
console.log('WebSocket連接打開失敗,請檢查!')
})
通過 WebSocket 連接發(fā)送數(shù)據(jù),需要先 wx.connectSocket,并在 wx.onSocketOpen 回調之后才能發(fā)送。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
data | String/ArrayBuffer | 是 | 需要發(fā)送的內容 |
success | Function | 否 | 接口調用成功的回調函數(shù) |
fail | Function | 否 | 接口調用失敗的回調函數(shù) |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
示例代碼:
var socketOpen = false
var socketMsgQueue = []
wx.connectSocket({
url: 'test.php'
})
wx.onSocketOpen(function(res) {
socketOpen = true
for (var i = 0; i < socketMsgQueue.length; i++){
sendSocketMessage(socketMsgQueue[i])
}
socketMsgQueue = []
})
function sendSocketMessage(msg) {
if (socketOpen) {
wx.sendSocketMessage({
data:msg
})
} else {
socketMsgQueue.push(msg)
}
}
監(jiān)聽WebSocket接受到服務器的消息事件。
CALLBACK返回參數(shù):
參數(shù) | 類型 | 說明 |
---|---|---|
data | String/ArrayBuffer | 服務器返回的消息 |
示例代碼:
wx.connectSocket({
url: 'test.php'
})
wx.onSocketMessage(function(res) {
console.log('收到服務器內容:' + res.data)
})
關閉WebSocket連接。
參數(shù) | 類型 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|
code | Number | 否 | 一個數(shù)字值表示關閉連接的狀態(tài)號,表示連接被關閉的原因。如果這個參數(shù)沒有被指定,默認的取值是1000 (表示正常連接關閉) | 1.4.0 |
reason | String | 否 | 一個可讀的字符串,表示連接被關閉的原因。這個字符串必須是不長于123字節(jié)的UTF-8 文本(不是字符) | 1.4.0 |
success | Function | 否 | 接口調用成功的回調函數(shù) | |
fail | Function | 否 | 接口調用失敗的回調函數(shù) | |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
監(jiān)聽WebSocket關閉。
wx.connectSocket({
url: 'test.php'
})
//注意這里有時序問題,
//如果 wx.connectSocket 還沒回調 wx.onSocketOpen,而先調用 wx.closeSocket,那么就做不到關閉 WebSocket 的目的。
//必須在 WebSocket 打開期間調用 wx.closeSocket 才能關閉。
wx.onSocketOpen(function() {
wx.closeSocket()
})
wx.onSocketClose(function(res) {
console.log('WebSocket 已關閉!')
})
返回值:
基礎庫 1.7.0 開始支持,低版本需做兼容處理
返回一個 SocketTask。
tip
: createSocket 鏈接默認和最大超時時間都是 60stip
: 網絡請求的 referer 是不可以設置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}
為小程序的 appid,{version}
為小程序的版本號,版本號為 0 表示為開發(fā)版。基礎庫 1.7.0 開始支持,低版本需做兼容處理
WebSocket 任務,可通過 wx.connectSocket() 接口創(chuàng)建返回。
通過 WebSocket 連接發(fā)送數(shù)據(jù)。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
data | String/ArrayBuffer | 是 | 需要發(fā)送的內容 |
success | Function | 否 | 接口調用成功的回調函數(shù) |
fail | Function | 否 | 接口調用失敗的回調函數(shù) |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
關閉 WebSocket 連接。
OBJECT參數(shù)說明:
參數(shù) | 類型 | 必填 | 說明 |
---|---|---|---|
code | Number | 否 | 一個數(shù)字值表示關閉連接的狀態(tài)號,表示連接被關閉的原因。如果這個參數(shù)沒有被指定,默認的取值是1000 (表示正常連接關閉) |
reason | String | 否 | 一個可讀的字符串,表示連接被關閉的原因。這個字符串必須是不長于123字節(jié)的UTF-8 文本(不是字符) |
success | Function | 否 | 接口調用成功的回調函數(shù) |
fail | Function | 否 | 接口調用失敗的回調函數(shù) |
complete | Function | 否 | 接口調用結束的回調函數(shù)(調用成功、失敗都會執(zhí)行) |
監(jiān)聽 WebSocket 連接打開事件。
監(jiān)聽 WebSocket 連接關閉事件。
監(jiān)聽 WebSocket 錯誤。
CALLBACK返回參數(shù):
參數(shù) | 類型 | 說明 |
---|---|---|
errMsg | String | 錯誤信息 |
監(jiān)聽WebSocket接受到服務器的消息事件。
CALLBACK返回參數(shù):
參數(shù) | 類型 | 說明 |
---|---|---|
data | String/ArrayBuffer | 服務器返回的消息 |
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: