微信小程序 網(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)文章
Flutter刷新組件RefreshIndicator自定義樣式demo
這篇文章主要介紹了Flutter刷新組件RefreshIndicator自定義樣式demo,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-02-02原型和原型鏈 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微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)
這篇文章主要介紹了微信小程序 循環(huán)及嵌套循環(huán)的使用總結(jié)的相關(guān)資料,希望通過本文能幫助到大家,需要的朋友可以參考下2017-09-09微信小程序 動(dòng)態(tài)傳參實(shí)例詳解
這篇文章主要介紹了微信小程序 動(dòng)態(tài)傳參實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下2017-04-04微信小程序 checkbox組件詳解及簡(jiǎn)單實(shí)例
這篇文章主要介紹了微信小程序 checkbox組件詳解及簡(jiǎn)單實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-01-01JS跨域(Access-Control-Allow-Origin)前后端解決方案詳解
這篇文章主要介紹了瀏覽器跨域(Access-Control-Allow-Origin)解決方案詳解包括了前端跨域,后端跨域,js原生實(shí)現(xiàn)jsonp,jQuery實(shí)現(xiàn)jsonp,vue.js實(shí)現(xiàn)jsonp,需要的朋友可以參考下2022-01-01