Websocket連線

WebSocket 是一個先進的技術,允許在用戶端和伺服器之間建立互動式通訊會話。以下是 WebSocket 在實際使用上的優點:


1. **雙向通信**: WebSocket 提供了全雙工的通信管道。這意味著伺服器和客戶端都可以同時發送和接收資料,而不需要等待對方完成。

   

2. **即時性**: 因為它是一個持久的連接,所以資料可以立即無延遲地傳輸。

   

3. **減少網絡流量**: 與傳統的 HTTP 請求相比,WebSocket 不需要每次交換數據都發送完整的 HTTP 頭部資料,這可以減少不必要的帶寬使用和延遲。

   

4. **低延遲**: WebSocket 適合於需要低延遲的應用,例如遊戲、財經交易平台或實時訊息系統。

   

5. **持久的連接**: 一旦 WebSocket 連接建立,它將保持打開狀態,直到客戶端或伺服器決定關閉它。這與傳統的 HTTP 連接不同,後者會在每次請求後被關閉。

   

6. **適應性**: WebSocket 可以通過已存在的 HTTP 或 HTTPS 端口運行,這使得它可以輕鬆地整合到現有的 IT 基礎設施中。


當 WebSocket 首次建立連接時,它會開始一個稱為 "握手" 的過程。這基本上是一個標準的 HTTP 請求,但帶有一些特殊的頭部資訊,表明客戶端希望建立 WebSocket 連接而不是普通的 HTTP 連接。


1. **客戶端請求**:客戶端發送一個 HTTP 請求到伺服器,這個請求看起來大致像這樣:


   ```

   GET /mychat HTTP/1.1

   Host: server.example.com

   Upgrade: websocket

   Connection: Upgrade

   Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw==

   Sec-WebSocket-Protocol: chat, superchat

   Sec-WebSocket-Version: 13

   Origin: http://example.com

   ```


   這裡,"Upgrade: websocket" 和 "Connection: Upgrade" 告訴伺服器,客戶端希望升級協議從 HTTP 到 WebSocket。


2. **伺服器回應**:如果伺服器接受此 WebSocket 請求,它會返回以下答覆:


   ```

   HTTP/1.1 101 Switching Protocols

   Upgrade: websocket

   Connection: Upgrade

   Sec-WebSocket-Accept: HSmrc0sMlYUkAGmm5OPpG2HaGWk=

   ```


   這裡的 "101 Switching Protocols" 表示伺服器同意切換到 WebSocket 協議。


完成這個交握過程後,連接就會從 HTTP 協議升級到 WebSocket 協議,之後兩者可以開始通過這個通道交換資料。

0 Comments:

張貼留言