您好,登錄后才能下訂單哦!
今天小編給大家分享一下connectsocket怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
創建一個 WebSocket 連接;一個微信小程序同時只能有一個 WebSocket 連接,如果當前已存在一個 WebSocket 連接,會自動關閉該連接,并重新創建一個 WebSocket 連接。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|
url | String | 是 | 開發者服務器接口地址,必須是 wss 協議,且域名必須是后臺配置的合法域名 | |
data | Object | 否 | 請求的數據 | |
header | Object | 否 | HTTP Header , header 中不能設置 Referer | |
method | String | 否 | 默認是GET,有效值: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT | |
protocols | StringArray | 否 | 子協議數組 | 1.4.0 |
success | Function | 否 | 接口調用成功的回調函數 | |
fail | Function | 否 | 接口調用失敗的回調函數 | |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
示例代碼:
wx.connectSocket({ url: 'test.php', data:{ x: '', y: '' }, header:{ 'content-type': 'application/json' }, protocols: ['protocol1'], method:"GET"})
監聽WebSocket連接打開事件。
示例代碼:
wx.connectSocket({ url: 'test.php'}) wx.onSocketOpen(function(res) { console.log('WebSocket連接已打開!') })
監聽WebSocket錯誤。
示例代碼:
wx.connectSocket({ url: 'test.php'}) wx.onSocketOpen(function(res){ console.log('WebSocket連接已打開!') }) wx.onSocketError(function(res){ console.log('WebSocket連接打開失敗,請檢查!') })
通過 WebSocket 連接發送數據,需要先 wx.connectSocket,并在 wx.onSocketOpen 回調之后才能發送。
OBJECT參數說明:
參數 | 類型 | 必填 | 說明 |
---|---|---|---|
data | String/ArrayBuffer | 是 | 需要發送的內容 |
success | Function | 否 | 接口調用成功的回調函數 |
fail | Function | 否 | 接口調用失敗的回調函數 |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
示例代碼:
var socketOpen = falsevar 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) } }
監聽WebSocket接受到服務器的消息事件。
CALLBACK返回參數:
參數 | 類型 | 說明 |
---|---|---|
data | String/ArrayBuffer | 服務器返回的消息 |
示例代碼:
wx.connectSocket({ url: 'test.php'}) wx.onSocketMessage(function(res) { console.log('收到服務器內容:' + res.data) })
關閉WebSocket連接。
參數 | 類型 | 必填 | 說明 | 最低版本 |
---|---|---|---|---|
code | Number | 否 | 一個數字值表示關閉連接的狀態號,表示連接被關閉的原因。如果這個參數沒有被指定,默認的取值是1000 (表示正常連接關閉) | 1.4.0 |
reason | String | 否 | 一個可讀的字符串,表示連接被關閉的原因。這個字符串必須是不長于123字節的UTF-8 文本(不是字符) | 1.4.0 |
success | Function | 否 | 接口調用成功的回調函數 | |
fail | Function | 否 | 接口調用失敗的回調函數 | |
complete | Function | 否 | 接口調用結束的回調函數(調用成功、失敗都會執行) |
監聽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 已關閉!') })
tip
: createSocket 鏈接默認和最大超時時間都是 60s
tip
: 網絡請求的 referer 是不可以設置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}
為小程序的 appid,{version}
為小程序的版本號,版本號為 0 表示為開發版。
以上就是“connectsocket怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。