使用WebSocket實作簡易聊天室(1)-WebSocket簡介

Share This Post

WebSocket是一種基於TCP協議的網路通信協議,它允許客戶端和伺服器端之間建立持久性的、全雙工的連接。相較於傳統的HTTP協議,WebSocket能夠更有效地進行通信,因為它不需要像HTTP協議那樣每次通信都建立一個新的連接,而是通過一個初始握手來建立一個持久性的連接。

WebSocket 的優點

和 HTTP 最大的差別是,WebScoket 在建立連線之後,可以實現 client 與 server 的雙向溝通機制,也就是說,雙方可以即時的交換資訊,不用再等待 client 發出請求,或使用佔用資源的輪詢方式來實現。

另一方面,在建立連線之後就會持續保持著連線狀態,所以每次通訊時所發出的 message,就可以省略掉 headers 當中一些關於連線狀態的資訊,也就因此提高了效率。

WebSocket 常見的應用

  • 即時聊天:WebSocket 可以用於在瀏覽器和服務器之間建立持久性連接,從而實現即時聊天。
  • 在線遊戲:WebSocket 可以幫助線上遊戲在玩家之間建立即時通信的連接,以實現多人遊戲、實時對戰等功能。
  • 實時資料傳輸:WebSocket 可以用於實現實時資料推送,例如股票報價、氣象預報等。通過 WebSocket 協議,服務器可以將最新的資料即時推送給客戶端,從而實現實時更新的效果。
  • 在線協作:WebSocket 可以用於實現在線協作。

WebSocket 的使用

WebSocket API (client 端) 的範例可以參考:
https://developer.mozilla.org/en-US/docs/Web/API/WebSocket

以下是Client的簡單範例:

// Create WebSocket connection.
const socket = new WebSocket("wss://echo.websocket.org");

// Connection opened
socket.addEventListener('open', function (event) {
    console.log('Open connection')
    socket.send('Hello Server!');
});

// Listen for messages
socket.addEventListener('message', function (event) {
    console.log(`Message from server: ${event.data}`);
});

訂閱研究文章

Get updates and learn from the best

More To Explore

Scroll to Top

hurry up !

軟體工程師培訓

限時免費報名中

藉由與「真實世界軟體專案」相同的技術、工具與開發流程,化簡成與商業機密無關、門檻較低更容易上手的「模擬專案」,讓你有機會在職場前輩的陪伴下,完成真槍實彈的練習,動手解決真實的問題,快速累積個人的經驗與作品,而不只是「學習技術」而已。