Socket.IO

维基百科,自由的百科全书
跳转到导航 跳转到搜索
Socket.IO
原作者Guillermo Rauch
当前版本3.0.3(2020年11月19日 (2020-11-19)[1]
源代码库
  • {{URL|example.com|可选的显示文本}}
Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
编程语言JavaScript
引擎
    Module:EditAtWikidata第29行Lua错误:attempt to index field 'wikibase' (a nil value)
    操作系统跨平台
    类型事件驱动 网络
    许可协议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). 

    外部链接[编辑]