微信小程序 網(wǎng)絡(luò)API Websocket詳解
微信小程序 網(wǎng)絡(luò)API:
微信小程序 網(wǎng)絡(luò)API發(fā)起請(qǐng)求
微信小程序 網(wǎng)絡(luò)API Websocket
wx.connectSocket(OBJECT)
創(chuàng)建一個(gè) WebSocket 連接;一個(gè)微信小程序同時(shí)只能有一個(gè)WebSocket連接,如果當(dāng)前已存在一個(gè)WebSocket連接,會(huì)自動(dòng)關(guān)閉該連接,并重新創(chuàng)建一個(gè)WebSocket連接。
OBJECT參數(shù)說明:
| 參數(shù) | 類型 | 必填 | 說明 |
|---|---|---|---|
| url | String | 是 | 開發(fā)者服務(wù)器接口地址,必須是HTTPS協(xié)議,且域名必須是后臺(tái)配置的合法域名 |
| data | Object | 否 | 請(qǐng)求的數(shù)據(jù) |
| header | Object | 否 | HTTP Header |
| method | String | 否 | 默認(rèn)是GET,有效值為: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT |
| success | Function | 否 | 接口調(diào)用成功的回調(diào)函數(shù) |
| fail | Function | 否 | 接口調(diào)用失敗的回調(diào)函數(shù) |
| complete | Function | 否 | 接口調(diào)用結(jié)束的回調(diào)函數(shù)(調(diào)用成功、失敗都會(huì)執(zhí)行) |
示例代碼:
wx.connectSocket({
url:"test.php",
data:{
x:"",
y:""
},
header:{
'content-type': 'application/json'
},
method:"GET"
})
wx.onSocketOpen(CALLBACK)
監(jiān)聽WebSocket連接打開事件
示例代碼:
wx.connectSocket({
url:"test.php"
});
wx.onSocketOpen(function(res){
console.log("WebSocket連接已打開!")
})
wx.onSocketError(CALLBACK)
監(jiān)聽WebSocket錯(cuò)誤
示例代碼:
wx.connectSocket({
url:"test.php"
});
wx.onSocketOpen(function(res){
console.log("WebSocket連接已打開!")
})
wx.onSocketError(function(res){
console.log("WebSocket連接打開失敗,請(qǐng)檢查!")
})
wx.sendSocketMessage(OBJECT)
通過WebSocket連接發(fā)送數(shù)據(jù),需要先wx.connectSocket,并在wx.onSocketOpen回調(diào)之后才能發(fā)送。
OBJECT參數(shù)說明:
| 參數(shù) | 類型 | 必填 | 說明 |
|---|---|---|---|
| data | String | 是 | 需要發(fā)送的內(nèi)容 |
示例代碼:
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)
}
}
wx.onSocketMessage(CALLBACK)
監(jiān)聽WebSocket接受到服務(wù)器的消息事件
CALLBACK返回參數(shù):
| 參數(shù) | 類型 | 說明 |
|---|---|---|
| data | String | 服務(wù)器返回的消息 |
示例代碼:
wx.connectSocket({
url:"test.php"
});
wx.onSocketMessage(function(res){
console.log("收到服務(wù)器內(nèi)容:" + res.data)
})
wx.closeSocket()
關(guān)閉WebSocket連接
wx.onSocketClose(CALLBACK)
監(jiān)聽WebSocket關(guān)閉
wx.connectSocket({
url:"test.php"
});
//注意這里有時(shí)序問題,
//如果wx.connectSocket還沒回調(diào)wx.onSocketOpen,而先調(diào)用wx.closeSocket,那么就做不到關(guān)閉WebSocket的目的
//必須在WebSocket打開期間調(diào)用wx.closeSocket才能關(guān)閉
wx.onSocketOpen(function(){
wx.closeSocket()
})
wx.onSocketClose(function(res){
console.log("WebSocket 已關(guān)閉!")
})
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
JS實(shí)現(xiàn)將圖片URL轉(zhuǎn)base64示例詳解
這篇文章主要為大家介紹了JS實(shí)現(xiàn)將圖片URL轉(zhuǎn)base64示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
原型和原型鏈 prototype和proto的區(qū)別詳情
原型是function對(duì)象下的屬性,它定義了構(gòu)造函數(shù)的共同祖先,也就是一個(gè)父子級(jí)的關(guān)系,子對(duì)象會(huì)繼承父對(duì)象的方法和屬性,每個(gè)實(shí)例對(duì)象下都有__proto__屬性,通過屬性__proto__指向構(gòu)造函數(shù)的原型對(duì)象,當(dāng)?shù)竭_(dá)末端時(shí),返回null,這樣一層一層向頂端查找,就形成了原型鏈2021-10-10
Meta開源JavaScript內(nèi)存泄漏監(jiān)測工具M(jìn)emLab安裝使用
這篇文章主要為大家介紹了Meta開源JavaScript內(nèi)存泄漏監(jiān)測工具M(jìn)emLab安裝使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-09-09
JavaScript實(shí)現(xiàn)一個(gè)Promise隊(duì)列小工具
這篇文章主要介紹了JavaScript實(shí)現(xiàn)一個(gè)Promise隊(duì)列小工具,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-08-08
利用 JavaScript 構(gòu)建命令行應(yīng)用
這篇文章主要介紹了利用 JavaScript 構(gòu)建命令行應(yīng)用,下面文章圍繞如何利用JavaScript 構(gòu)建命令行應(yīng)用的相關(guān)資料炸開詳細(xì)內(nèi)容,需要的朋友可以參考一下2021-11-11

