11.27 SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

日常普通項目開發過程中,我們幾乎很少用到WebSocket開發。但最近的項目有個功能需要服務器端實時的推送最新的信息同步到前端頁面展示。所以思前想後,決定採用WebSocket再適合不過了。於是在實現的過程中剛開始各種百度WebSocket實現流程及樣例。遺憾的是,搜索的結果永遠都是千篇一律的一致。(甚至,可以肯定的是基本都是複製粘貼沒有經過親身實踐過)雖然大的方向沒錯,但最終的結果就是一直各種錯誤,各種websocket連接失敗。直至最後琢磨了半天,才確認結果。再次驗證實際工作中細節決定成敗啊。

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

既然準備用WebSocket,那就首先了解WebSocket的主要作用。WebSocket他是為了解決客戶端發起多個http請求到服務器資源瀏覽器必須要經過長時間的輪訓問題而生的,他實現了多路複用,他是全雙工通信。在webSocket協議下客戶端和瀏覽器可以同時發送信息。用大白話解釋主要作用就是:

  1. 客戶端特別頻繁的和服務器進行數據交互的時候(比如按秒級別的請求)
  2. 服務器端定時向前端推送消息的時候

廢話就說到這裡,下面直接擼上這次實踐過程中的乾貨及注意點:

框架用的是SpringBoot目前最新版本2.2的框架,首先pom文件依賴添加spring-boot-starter-websocket就行了,如圖:

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

然後創建websocket配置文件,如圖:

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

最後也是最重要的就是websocket服務端代碼編寫:劃重點一定要注意兩個註解(@Controller 和@ServerEndpoint),網上基本都是@Component註解,然後各種解析包衝突等問題。

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

完成上面三個主要步驟,springboot集成 WebSocket服務端的工作就完成了。後面就是前端websocket連接寫法需要注意下:

SpringBoot2.2 實踐WebSocket被不靠譜的百度搜索結果坑了多少人

websocket端口號就是後臺服務端的端口號,這裡的IP一定要寫成對應的IP地址,不要用localhost或127.0.0.1地址。

全部寫完後,後端直接寫個定時任務調用發送消息的接口,前端就可以實時展示服務端推送的消息內容了。至此,所有注意點都已經說明了。有不明白或需要詳細瞭解的小夥伴可關注並私聊我。難得抽出點額外時間來補充這次工作中用到websocket遇到的問題點,在此給自己做個筆記同時分享給需要了解的朋友們。還是那句話。期待大家一起學習一起進步。

See you next time!


分享到:


相關文章: