網路與介面

WebSocket(網路通訊端)

/ WEB-sock-it /

WebSocket 是一種在瀏覽器和伺服器之間保持一條「活的、雙向」線路常開的辦法,讓訊息一旦發生,就能立刻在兩個方向上來回流動。聊天應用、即時比分、多人遊戲、「對方正在輸入……」——凡是需要伺服器不等你開口就主動把新訊息推給你的場景,背後都靠它。

要明白它為什麼重要,先想想網路平常的工作方式:一來一回的「請求—回應」,就像寄信。瀏覽器寄出一個問題,伺服器寄回一個答案,然後這條線就「斷了」,直到瀏覽器再寫一封。伺服器沒法自己主動開口。要是想用這種方式拿即時更新,你就只能不停地追問——「有新的嗎?有新的嗎?」——一遍又一遍,又慢又費。

WebSocket 把「寄信」換成了一通「一直沒掛斷的電話」。只要做一次快速的建立動作(一個把普通連線「升級」過去的「握手」),這條線就保持常開,哪一邊想說話隨時都能說——不必重新發問,也沒有延遲。這條常開的通道正是它的全部意義:它讓伺服器能在事情一變化的那一刻,就拍拍你的肩。

const ws = new WebSocket("wss://chat.example.com");
ws.onmessage = (e) => console.log("server says:", e.data);
ws.send("hello!");  // and you can talk back, any time

一條常開的連線:伺服器能推給你,你也能隨時回傳。

普通 HTTP 是「先請求、再回應」;WebSocket 讓線路常開,於是伺服器能先開口。

又稱
wswssreal-time connection