天天看點

SpringBoot整合WebSocket實作資料推送

SpringBoot整合WebSocket實作資料推送

  • 基本概念
  • WebSocket示例
  • WebSocket:
    • WebSocket是一種在單個TCP連接配接上進行全雙工通信的協定
    • WebSocket使得伺服器和用戶端之間的資料交換更加簡單,允許服務端主動向用戶端推送資料
    • 在WebSocket中,浏覽器和伺服器隻需要完成一次握手,兩者之間就可以直接建立持久性的連接配接,并進行雙向資料傳輸
  • 使用WebSocket方式實作資料推送:
    SpringBoot整合WebSocket實作資料推送
  • 使用WebSocket實作資料推送的優點:
    • 較少的控制開銷: 在連接配接建立後,伺服器與用戶端之間交換資料時,用于協定控制的資料標頭部相對較小. 在不包括擴充的情況下,對于伺服器到用戶端的内容,頭部的大小隻有2-10位元組,大小和資料包長度相關; 對于用戶端到伺服器的内容,頭部需要加上額外的4個位元組的掩碼. 相對于HTTP請求每次都需要攜帶完整的頭部,這裡的開銷明顯減少
    • 較強的實時性: 由于協定是全雙工的,是以伺服器可以随時主動下發資料給用戶端. 相對于HTTP請求需要等待用戶端發起請求服務端才能響應,延遲明顯減小. 對于和Comet等長輪詢相比較,也能在短時間内更多次地傳遞資料
    • 保持連接配接狀态: 和HTTP不同 ,WebSocket需要先建立連接配接,這使得WebSocket成為一種有狀态的協定,這樣通信時可以省略部分狀态資訊. 而HTTP請求可能需要在每次請求時都要攜帶狀态資訊,比如身份認證等
    • 較好的二進制支援: WebSocket中定義了二進制幀. 和HTTP相比較,可以更好地處理二進制資料
    • 支援擴充: WebSocket定義了擴充,可以擴充協定,實作部分自定義的子協定. 比如部分浏覽器支援壓縮等
    • 較好的壓縮效果: 和HTTP壓縮相比較 ,WebSocket在适當的擴充支援下,可以沿用之前的上下文,這樣在傳遞類似資料時,可以顯著提高壓縮率
  • PC:
    • 系統管理者賬号密碼登入
    • 伺服器Server權限架構校驗
    • 校驗成功
    • 根據使用者ID儲存Session
    • 登入首頁自動連接配接WebSocket
    • 伺服器Server建立連接配接并根據使用者ID綁定目前浏覽器Session
  • APP:
    • 在APP端進行資訊填寫
    • 伺服器Server校驗資訊填寫是否正确
    • 服務端Server查詢管理者是否線上
    • 查詢管理者線上
    • 推送資訊填寫的消息
  • 注意:
    • 退出PC系統的則關閉WebSocket連接配接
    • APP資訊填寫成功,查詢管理者是否線上.如果線上則推送填寫成功的消息. 如果不線上,則先儲存成功填寫成功的消息,在管理者上線時再推送填寫成功的消息
  • WebSocket使用示例

繼續閱讀