WebSockets - Web API 接口参考 编辑
WebSockets 是一种先进的技术。它可以在用户的浏览器和服务器之间打开交互式通信会话。使用此API,您可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。
接口
WebSocket
- 用于连接WebSocket服务器的主要接口,之后可以在这个连接上发送 和接受数据。
CloseEvent
- 连接关闭时WebSocket对象发送的事件。
MessageEvent
- 当从服务器获取到消息的时候WebSocket对象触发的事件。
工具
- HumbleNet: 一个在浏览器中工作的跨平台网络库。它由一个围绕websocket和WebRTC的C包装器组成,抽象了跨浏览器的差异,方便了为游戏和其它应用程序创建多用户网络功能。
- µWebSockets:由C++11和Node.js 实现的高度可扩展的WebSocket服务器和客户端.。
- ClusterWS: 轻量级、快速和强大的框架,用于在Node.js.中构建可伸缩的WebSocket应用程序。
- Socket.IO: 一个基于长轮询/WebSocket的Node.js第三方传输协议。
- SocketCluster: 一个用于Node.js的pub/sub专注于可伸缩 WebSocket框架。
- WebSocket-Node: 一个用 Node.js实现WebSocket服务器API。
- Total.js:一个用Node.js 实现的的Web应用程序框架(例如:WebSocket聊天)。
- Faye: 一个 Node.js的WebSocket (双向连接)和 EventSource (单向连接)的服务器和客户端。
- SignalR: SignalR在可用时将隐藏使用WebSockets,在不可用时将优雅地使用其他技术和技术,而应用程序代码保持不变。
- Caddy: 能够将任意命令(stdin/stdout)代理为websocket的web服务器。
- ws: 一个流行的WebSocket客户端和服务器 Node.js库。
- jsonrpc-bidirectional: 易于使用异步RPC库,通过单个WebSocket或RTCDataChannel (WebRTC)连接支持双向调用。TCP / SCTP /等。客户端和服务器可以各自承载自己的JSONRPC和服务器端点。
- rpc-websockets: JSON-RPC 2.0在websocket上实现Node.js和JavaScript。
相关话题
参见
浏览器兼容性
We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Version -76 support | 6 | 未实现 | 4.0 (2.0) | 未实现 | 11.00 (disabled) | 5.0.1 |
Protocol version 7 support | 未实现 | 未实现 | 6.0 (6.0) Moz | 未实现 | 未实现 | 未实现 |
Protocol version 10 support | 14 | 未实现 | 7.0 (7.0) Moz | HTML5 Labs | ? | ? |
Standard - RFC 6455 Support | 16 | (Yes) | 11.0 (11.0) | 10 | 12.10 | 6.0 |
Usable in Workers | (Yes) | (Yes) | 37.0 (37.0) | ? | ? | ? |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Version -76 support | ? | 未实现 | ? | ? | ? | ? |
Protocol version 7 support | ? | 未实现 | ? | ? | ? | ? |
Protocol version 8 support (IETF draft 10) | ? | 未实现 | 7.0 (7.0) | ? | ? | ? |
Standard - RFC 6455 Support | 4.4 | (Yes) | 11.0 (11.0) | ? | 12.10 | 6.0 |
Usable in Workers | (Yes) | (Yes) | 37.0 (37.0) | ? | ? | ? |
Gecko notes
Firefox中的WebSocket支持正在继续跟踪WebSocket规范的发展。Firefox 6实现了底层协议的version 7,而Firefox 7实现了version 8(如IETF draft 10所指定的)。Firefox移动版在Firefox7.0支持WebSocket。
Gecko 6.0
在Gecko 6.0 (Firefox 6.0 / Thunderbird 6.0 / SeaMonkey 2.3)之前,一些网站认为WebSocket
对象是错误的,意味着WebSocket
服务没有前缀,此对象已重命名为MozWebSocket
。
Gecko 7.0
从Gecko 7.0 (Firefox 7.0 / Thunderbird 7.0 / SeaMonkey 2.4)中开始,network.websocket.max-connections是
用于确定每次可以打开的WebSocket连接的最大数量的最大连接首选项。默认值是200。
Gecko 8.0
从Gecko 8.0 (Firefox 8.0 / Thunderbird 8.0 / SeaMonkey 2.5)中开始,WebSocket
协议的deflate-stream扩展已经被禁用,因为它已经在规范草案中废弃了。这解决了某些站点的不兼容性问题。
Gecko 11.0
在Gecko 11.0之前,传入和传出消息的大小都限制在16MB。它们现在的大小可能高达 2 GB 。然而,请注意,内存限制(尤其是在移动设备上)使其成为理论上的最大限制,而不是实际的最大限制。实际上,在没有足够内存的设备上,这种大小的传输将会失败。
此外,ArrayBuffer对二进制数据的收发支持已经实现。
从Gecko 11.0开始,WebSocket API不需要前缀。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论