微信小程序 網(wǎng)絡(luò)API Websocket詳解
微信小程序 網(wǎng)絡(luò)API:
微信小程序 網(wǎng)絡(luò)API發(fā)起請求
微信小程序 網(wǎng)絡(luò)API Websocket
wx.connectSocket(OBJECT)
創(chuàng)建一個 WebSocket 連接;一個微信小程序同時只能有一個WebSocket連接,如果當(dāng)前已存在一個WebSocket連接,會自動關(guān)閉該連接,并重新創(chuàng)建一個WebSocket連接。
OBJECT參數(shù)說明:
| 參數(shù) | 類型 | 必填 | 說明 |
|---|---|---|---|
| url | String | 是 | 開發(fā)者服務(wù)器接口地址,必須是HTTPS協(xié)議,且域名必須是后臺配置的合法域名 |
| data | Object | 否 | 請求的數(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)用成功、失敗都會執(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錯誤
示例代碼:
wx.connectSocket({
url:"test.php"
});
wx.onSocketOpen(function(res){
console.log("WebSocket連接已打開!")
})
wx.onSocketError(function(res){
console.log("WebSocket連接打開失敗,請檢查!")
})
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"
});
//注意這里有時序問題,
//如果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)閉!")
})
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
相關(guān)文章
Flutter刷新組件RefreshIndicator自定義樣式demo
這篇文章主要介紹了Flutter刷新組件RefreshIndicator自定義樣式demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-02-02
原型和原型鏈 prototype和proto的區(qū)別詳情
原型是function對象下的屬性,它定義了構(gòu)造函數(shù)的共同祖先,也就是一個父子級的關(guān)系,子對象會繼承父對象的方法和屬性,每個實例對象下都有__proto__屬性,通過屬性__proto__指向構(gòu)造函數(shù)的原型對象,當(dāng)?shù)竭_末端時,返回null,這樣一層一層向頂端查找,就形成了原型鏈2021-10-10
微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)
這篇文章主要介紹了微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09
JS跨域(Access-Control-Allow-Origin)前后端解決方案詳解
這篇文章主要介紹了瀏覽器跨域(Access-Control-Allow-Origin)解決方案詳解包括了前端跨域,后端跨域,js原生實現(xiàn)jsonp,jQuery實現(xiàn)jsonp,vue.js實現(xiàn)jsonp,需要的朋友可以參考下2022-01-01

