Socket.IO - 概述



Socket.IO 是一個用於即時 Web 應用程式的 JavaScript 庫。它使 Web 客戶端和伺服器之間能夠進行即時、雙向通訊。它有兩個部分 - 在瀏覽器中執行的客戶端庫和用於 node.js 的伺服器端庫。這兩個元件具有相同的 API。

即時應用

即時應用 (RTA) 是一個在使用者感知為即時或當前的時間段內執行的應用程式。

一些即時應用的示例如下:

  • 即時通訊軟體 - WhatsApp、Facebook Messenger 等聊天應用。您無需重新整理您的應用/網站即可接收新訊息。

  • 推送通知 - 當有人在 Facebook 上標記您的一張照片時,您會立即收到通知。

  • 協作應用 - 像 Google Docs 這樣的應用,允許多人同時更新同一文件並將更改應用於所有人的例項。

  • 線上遊戲 - 反恐精英、使命召喚等遊戲也是即時應用的一些示例。

為什麼選擇 Socket.IO?

使用流行的 Web 應用棧(如 LAMP(PHP))編寫即時應用傳統上非常困難。它涉及輪詢伺服器以獲取更改、跟蹤時間戳,並且速度比應有的速度慢得多。

套接字傳統上是大多數即時系統構建的基礎解決方案,它在客戶端和伺服器之間提供雙向通訊通道。這意味著伺服器可以將訊息推送到客戶端。每當發生事件時,伺服器都會獲取該事件並將其推送到相關的已連線客戶端。

Socket.IO 非常流行,Microsoft Office、Yammer、Zendesk、Trello等眾多組織都使用它來構建強大的即時系統。它是GitHub上最強大的JavaScript 框架之一,也是最依賴的 NPM(Node 包管理器)模組。Socket.IO 還擁有龐大的社群,這意味著很容易找到幫助。

ExpressJS

我們將使用 Express 來構建 Socket.IO 將與其一起工作的 Web 伺服器。可以使用任何其他 Node 伺服器端框架,甚至 Node HTTP 伺服器。但是,ExpressJS 使定義路由和其他內容變得容易。要了解更多關於 Express 的資訊並對其有一個基本的瞭解,請訪問 - ExpressJS 教程。

廣告