【實用】Spring整合WebSocket詳解過程及其原理

Websocket原理

1.WebSocket 機制

以下簡要介紹一下 WebSocket 的原理及運行機制。

WebSocket HTML5 一種新的協議。它實現了瀏覽器與服務器全雙工通信,能更好的節省服務器資源和帶寬並達到實時通訊,它建立在 TCP 之上,同 HTTP 一樣通過 TCP 來傳輸數據,但是它和 HTTP 最大不同是:

· WebSocket 是一種雙向通信協議,在建立連接後,WebSocket 服務器和 Browser/Client Agent 都能主動的向對方發送或接收數據,就像 Socket 一樣;

· WebSocket 需要類似 TCP 的客戶端和服務器端通過握手連接,連接成功後才能相互通信。

 

有交集,但是並不是全部。

· 

WebSocket 模式傳統 HTTP 客戶端與服務器的交互如下圖所示:

1. 傳統 HTTP 請求響應客戶端服務器交互圖

 

 

ajax輪詢

ajax輪詢的原理非常簡單,讓瀏覽器隔個幾秒就發送一次請求,詢問服務器是否有新信息。

 

 

使用 WebSocket 模式客戶端與服務器的交互如下圖:

2.WebSocket 請求響應客戶端服務器交互圖

 

 

上圖對比可以看出,相對於傳統 HTTP 每次請求-應答都需要客戶端與服務端建立連接的模式,WebSocket 是類似 Socket TCP 長連接的通訊模式,一旦 WebSocket 連接建立後,後續數據都以幀序列的形式傳輸。在客戶端斷開 WebSocket 連接或 Server 端斷掉連接前,不需要客戶端和服務端重新發起連接請求。在海量併發及客戶端與服務器交互負載流量大的情況下,極大的節省了網絡帶寬資源的消耗,有明顯的性能優勢,且客戶端發送和接受消息是在同一個持久連接上發起,實時性優勢明顯。

2.建立連接

 

 

 

 

 

spring+websocket

1. 加入 maven依賴     pom.xml

 

 

2. 配置spring 文件 加入websocket    

 

3. 配置攔截器


4. 攔截器處理類


5.創建配置


創建websocket配置相關的類,如我的WebSocketConfig.java,這一個類似於servlet項目中的@ServerEndpoint註解,它的作用就是在html頁面中可以直接訪問這個類配置的網址,從而進行相關邏輯的處理,而不是經過controller層來管理,有了這個類,WebSocketConfig就相當於是controller層了。

 

 

6.發送數據

 

、前端

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章