跳至內容

Socket.IO

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
Socket.IO
原作者Guillermo Rauch
目前版本3.0.3(2020年11月19日 (2020-11-19)[1]
原始碼庫 編輯維基數據鏈結
程式語言JavaScript
作業系統跨平台
類型事件驅動 網路
授權條款MIT授權條款[2]
網站socket.io

Socket.IO 是一個面向即時 web 應用JavaScript 庫。它使得伺服器和客戶端之間即時雙向的通訊成為可能。他有兩個部分:在瀏覽器中執行的客戶端庫,和一個面向Node.js的伺服器端庫。兩者有著幾乎一樣的API。像Node.js一樣,它也是事件驅動的.

Socket.IO 主要使用WebSocket協定。但是如果需要的話,Socket.io可以回退到幾種其它方法,例如Adobe Flash Sockets,JSONP拉取,或是傳統的AJAX拉取[3]並且在同時提供完全相同的介面。儘管它可以被用作WebSocket的包裝庫,它還是提供了許多其它功能,比如廣播至多個通訊端,儲存與不同客戶有關的資料,和非同步IO操作

可以使用npm(node 軟體套件)工具來安裝。[4]

優勢

Socket.IO 會自動選擇合適雙向通訊協定,僅僅需要程式設計師對通訊端的概念有所了解。

劣勢

Socket.io並不是一個基本的、獨立的、能夠回退到其它即時協定的WebSocket庫,它實際上是一個依賴於其它即時傳輸協定的自訂即時傳輸協定的實現。該協定的協商部分使得支援標準WebSocket的客戶端不能直接連接到Socket.io伺服器,並且支援Socket.io的客戶端也不能與非Socket.io框架的WebSocket或Comet伺服器通訊。因而,Socket.io要求客戶端與伺服器端均須使用該框架。

參考資料

  1. ^ Release 3.0.3 · socketio/socket.io. GitHub. 
  2. ^ http://github.com/LearnBoost/socket.io/blob/master/LICENSE
  3. ^ 存档副本. [2014-10-04]. (原始內容存檔於2016-06-07). 
  4. ^ 存档副本. [2014-10-04]. (原始內容存檔於2014-10-06). 

外部連結