Socket.IO
外觀
原作者 | Guillermo Rauch |
---|---|
目前版本 | 3.0.3(2020年11月19日[1]) |
原始碼庫 | |
程式語言 | JavaScript |
作業系統 | 跨平台 |
類型 | 事件驅動 網絡 |
特許條款 | MIT特許條款[2] |
網站 | socket |
Socket.IO 是一個面向即時 web 應用的 JavaScript 庫。它使得伺服器和客戶端之間即時雙向的通訊成為可能。他有兩個部分:在瀏覽器中執行的客戶端庫,和一個面向Node.js的伺服器端庫。兩者有着幾乎一樣的API。像Node.js一樣,它也是事件驅動的.
Socket.IO 主要使用WebSocket協定。但是如果需要的話,Socket.io可以回退到幾種其它方法,例如Adobe Flash Sockets,JSONP拉取,或是傳統的AJAX拉取,[3]並且在同時提供完全相同的介面。儘管它可以被用作WebSocket的包裝庫,它還是提供了許多其它功能,比如廣播至多個通訊端,儲存與不同客戶有關的數據,和非同步IO操作。
優勢
[編輯]Socket.IO 會自動選擇合適雙向通訊協定,僅僅需要程式設計師對通訊端的概念有所了解。
劣勢
[編輯]Socket.io並不是一個基本的、獨立的、能夠回退到其它即時協定的WebSocket庫,它實際上是一個依賴於其它即時傳輸協定的自訂即時傳輸協定的實現。該協定的協商部分使得支援標準WebSocket的客戶端不能直接連接到Socket.io伺服器,並且支援Socket.io的客戶端也不能與非Socket.io框架的WebSocket或Comet伺服器通訊。因而,Socket.io要求客戶端與伺服器端均須使用該框架。
參考資料
[編輯]- ^ Release 3.0.3 · socketio/socket.io. GitHub.
- ^ http://github.com/LearnBoost/socket.io/blob/master/LICENSE
- ^ 存档副本. [2014-10-04]. (原始內容存檔於2016-06-07).
- ^ 存档副本. [2014-10-04]. (原始內容存檔於2014-10-06).