舟山闪爸电子技术有限公司

connectsocket是什么,微信小程序APIWebsocket

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ù)器接口地址,必須是 wss 協(xié)議,且域名必須是后臺(tái)配置的合法域名  
data Object 請(qǐng)求的數(shù)據(jù)  
header Object HTTP Header , header 中不能設(shè)置 Referer  
method String 默認(rèn)是GET,有效值: OPTIONS, GET, HEAD, POST, PUT, DELETE, TRACE, CONNECT  
protocols StringArray 子協(xié)議數(shù)組 1.4.0
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'
  },  protocols: ['protocol1'],
  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/ArrayBuffer 需要發(fā)送的內(nèi)容
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í)行)

示例代碼:

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/ArrayBuffer 服務(wù)器返回的消息

示例代碼:

wx.connectSocket({
  url: 'test.php'
})

wx.onSocketMessage(function(res) {
  console.log('收到服務(wù)器內(nèi)容:' + res.data)
})

wx.closeSocket(OBJECT)


關(guān)閉WebSocket連接。

 

參數(shù) 類型 必填 說明 最低版本
code Number 一個(gè)數(shù)字值表示關(guān)閉連接的狀態(tài)號(hào),表示連接被關(guān)閉的原因。如果這個(gè)參數(shù)沒有被指定,默認(rèn)的取值是1000 (表示正常連接關(guān)閉) 1.4.0
reason String 一個(gè)可讀的字符串,表示連接被關(guān)閉的原因。這個(gè)字符串必須是不長(zhǎng)于123字節(jié)的UTF-8 文本(不是字符) 1.4.0
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.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)閉!')
})

Bug & Tip

  1. tip: createSocket 鏈接默認(rèn)和最大超時(shí)時(shí)間都是 60s
  2. tip: 網(wǎng)絡(luò)請(qǐng)求的 referer 是不可以設(shè)置的,格式固定為 https://servicewechat.com/{appid}/{version}/page-frame.html,其中{appid}為小程序的 appid,{version}為小程序的版本號(hào),版本號(hào)為 0 表示為開發(fā)版。
更多微信小程序開發(fā)教程,可以關(guān)注。
【本站聲明】
  1、本站文章中所選用的圖片及文字來源于網(wǎng)絡(luò)以及用戶投稿,由于未聯(lián)系到知識(shí)產(chǎn)權(quán)人或未發(fā)現(xiàn)有關(guān)知識(shí)產(chǎn)權(quán)的登記,如有知識(shí)產(chǎn)權(quán)人并不愿意我們使用,如果有侵權(quán)請(qǐng)立即聯(lián)系。
  2、本網(wǎng)站不對(duì)文章中所涉及的內(nèi)容真實(shí)性、準(zhǔn)確性、可靠性負(fù)責(zé),僅系客觀性描述,如您需要了解該類商品/服務(wù)詳細(xì)的資訊,請(qǐng)您直接與該類商品/服務(wù)的提供者聯(lián)系。


KESION 科汛軟件

KESION 科汛軟件是國(guó)內(nèi)領(lǐng)先的在線教育軟件及私域社交電商軟件服務(wù)提供商,長(zhǎng)期專注于為企業(yè)提供在線教育軟件及社交電商SaaS平臺(tái)解決方案。
公司核心產(chǎn)品云開店SaaS社交電商服務(wù)平臺(tái)、在線教育SaaS服務(wù)平臺(tái)、教育企業(yè)數(shù)字化SaaS云平臺(tái)、企微營(yíng)銷助手、私有化獨(dú)立部署品牌網(wǎng)校和在線教育咨詢等。

KESION 不斷通過技術(shù)創(chuàng)新,提供產(chǎn)品和服務(wù),助力企業(yè)向數(shù)字化轉(zhuǎn)型,通過科技驅(qū)動(dòng)商業(yè)革新,讓商業(yè)變得更智慧!



▼點(diǎn)擊進(jìn)入科汛官網(wǎng)了解更多



上/下篇
  • 微信小程序API上傳下載,將本地資源上傳到開發(fā)者服務(wù)器

  • 微信小程序API錄音,wx.startRecord開始錄音

換一換相關(guān)推薦
精選內(nèi)容
熱點(diǎn)精選