微信小程序-WebSocket應用


 

為何有 HTTP 協議還需要 WebSocket ?

  Http協議 有個缺陷:通信只能由客戶端發起。舉例來說,我們想了解今天的天氣,只能是客戶端向服務器發出請求,服務器返回查詢結果。HTTP 協議做不到服務器主動向客戶端推送信息。(單向請求)注定了如果服務器有連續的狀態變化,客戶端要獲知就非常麻煩。我們只能使用"輪詢":每隔一段時候,就發出一個詢問,了解服務器有沒有新的信息。最典型的場景就是聊天室。輪詢的效率低,非常浪費資源(因為必須不停連接,或者 HTTP 連接始終打開)。因此,工程師們一直在思考,有沒有更好的方法。WebSocket 就是這樣發明的。

WebSocket  最大特點:

服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話,屬於服務器推送技術的一種。

 

微信小程序中的應用:

 

1、頁面加載時,建立連接,

onLoad: function (option) {

    wx.connectSocket({
      url: '' ,  //此處開發者服務器接口地址
    })
}

  

2、監聽 WebSocket 接收到服務器的信息 : onSocketMessage() 

onLoad: function (option) {

    wx.connectSocket({
      url: '' ,  //此處開發者服務器接口地址
    })

    wx.onSocketMessage(function (data) {
        console.log(data)  
    }


}

  

3、在發送事件中,wx.sendSocketMessage(OBJECT)

send: function (){
    wx.sendSocketMessage({
      data: JSON.stringify(
        {
          "type": "message",
          "data": { "touser": _This.data.reUnionid, "content": sendValue }
        }),
      success: function (e) {
        console.log(e)
      },
      fail: function (e) {
        console.log(e)
      },
      complete: function (e) {
        console.log(e)
      }
    }
}

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM