上一篇我們探討了媒體傳輸協議RTP,現在讓我們深入研究網路通信中更多的技術和協議。在進入 WebRTC 前,需要了解 Polling、Long Polling 和 WebSocket 這三種通訊技術與 WebRTC 的差別。
client 用 setTimeout 或 setInterval 每隔一段時間就發 request 給 server。
Long Polling 是一種改進的 Polling 方式, client 向 server 發送 request, server 不會立即回應,直到有新的資料可用或超時才發出新的 response。
client 端與 server 端在 handshake 後,會在一條連線上達到雙向的資料傳輸,雙方可透過 WebSocket API 進行發送或接收,兩者之間就可以建立連接即時交換資訊,不用等待 client 發出請求。現今大多使用Socket.IO來實作。
有別於前面三個即時通訊技術以 TCP 三次握手進行連接, WebRTC 使用 UDP 作為主要的傳輸協議,此外也不需要 client 與 server 的溝通,而是透過建立 client 端與 client 端的傳輸連線。
以小的封包進行傳輸,並且強調實時性和低延遲。同時,WebRTC 還提供了一個SDP(Session Description Protocol)協議,用於交換通信設置信息,以確保兩端能夠建立成功的連接。
這邊有提到關於 SDP、NAT 會再後面詳細介紹 WebRTC 時說明~
下一篇會開始介紹主題 WebRTC!