區別總結
協議不同
Socket 是基於傳輸層 TCP 協議的,而 Websocket 是基於 HTTP 協議的。
Socket 通信是通過 Socket 套接字來實現的,而 Websocket 通信是通過 HTTP 的握手過程實現的。
持久化連接
傳統的 Socket 通信是基於短連接的,通信完成後即斷開連接。
Websocket 將 HTTP 協議升級後,實現了長連接,即建立連接後可以持續通信,避免了客戶端與服務端頻繁連接和斷開連接的過程。
雙向通信
傳統的 Socket 通信只支持單向通信,即客戶端向服務端發送請求,服務端進行響應。
Websocket 可以實現雙向通信,即客戶端和服務端都可以發起消息,實時通信效果更佳。
效率
Socket 通信具有高效性和實時性,因爲傳輸數據時沒有 HTTP 協議的頭信息。
Websocket 除了HTTP協議頭之外,還需要發送額外的數據,因此通信效率相對較低。
應用場景
Socket 適用於實時傳輸數據,例如在線遊戲、聊天室等需要快速交換數據的場景。
Websocket 適用於需要長時間保持連接的場景,例如在線音視頻、遠程控制等。
安全性
由於 Websocket 是基於HTTP協議的,與 HTTP 一樣,也可以通過 SSL/TLS 加密來保障通信安全。
Socket 通信需要自己在應用層實現加密,相對較爲複雜。