websocket簡介 一(附源碼)

一、爲什麼要用websocket?

已經有了 HTTP 協議,爲什麼還需要另一個協議?它能帶來什麼好處?
因爲 HTTP 協議有一個缺陷:通信只能由客戶端發起。
舉例來說,我們想了解今天的天氣,只能是客戶端向服務器發出請求,服務器返回查詢結果。HTTP 協議做不到服務器主動向客戶端推送信息。

二、簡介

WebSocket 協議在2008年誕生,2011年成爲國際標準。所有瀏覽器都已經支持了。

它的最大特點就是,服務器可以主動向客戶端推送信息,客戶端也可以主動向服務器發送信息,是真正的雙向平等對話,屬於服務器推送技術的一種。
在這裏插入圖片描述其他特點包括:

(1)建立在 TCP 協議之上,服務器端的實現比較容易。

(2)與 HTTP 協議有着良好的兼容性。默認端口也是80和443,並且握手階段採用 HTTP 協議,因此握手時不容易屏蔽,能通過各種 HTTP 代理服務器。

(3)數據格式比較輕量,性能開銷小,通信高效。

(4)可以發送文本,也可以發送二進制數據。

(5)沒有同源限制,客戶端可以與任意服務器通信。

(6)協議標識符是ws(如果加密,則爲wss),服務器網址就是 URL。
在這裏插入圖片描述

三、可運行的聊天室demo

1.通過Map <String,Set>進行聊天室的人員劃分,第一個參數爲room的id,第二個爲用戶的session。
2.當有用戶發送消息時候,通過websocket遍歷對應房間的set進行廣播。
3.springboot項目

在這裏插入圖片描述

四、源碼下載

https://github.com/sd258sos/demo
在這裏插入圖片描述

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