--- title: WebSockets slug: Web/API/WebSockets_API tags: - References - WebSockets translation_of: Web/API/WebSockets_API ---
{{DefaultAPISidebar("Websockets API")}}
WebSockets 是一种先进的技术。它可以在用户的浏览器和服务器之间打开交互式通信会话。使用此API,您可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。
WebSocket
CloseEvent
MessageEvent
{{CompatibilityTable}}
Feature | Chrome | Edge | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
Version -76 support {{obsolete_inline}} | 6 | {{CompatNo}} | {{CompatGeckoDesktop("2.0")}} | {{CompatNo}} | 11.00 (disabled) | 5.0.1 |
Protocol version 7 support {{obsolete_inline}} | {{CompatNo}} | {{CompatNo}} | {{CompatGeckoDesktop("6.0")}} {{property_prefix("Moz")}} |
{{CompatNo}} | {{CompatNo}} | {{CompatNo}} |
Protocol version 10 support {{obsolete_inline}} | 14 | {{CompatNo}} | {{CompatGeckoDesktop("7.0")}} {{property_prefix("Moz")}} |
HTML5 Labs | {{CompatUnknown}} | {{CompatUnknown}} |
Standard - RFC 6455 Support | 16 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("11.0")}} | 10 | 12.10 | 6.0 |
Usable in Workers | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("37.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Feature | Android | Edge | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|---|
Version -76 support {{obsolete_inline}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Protocol version 7 support {{obsolete_inline}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Protocol version 8 support (IETF draft 10) {{obsolete_inline}} | {{CompatUnknown}} | {{CompatNo}} | {{CompatGeckoMobile("7.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Standard - RFC 6455 Support | 4.4 | {{CompatVersionUnknown}} | {{CompatGeckoDesktop("11.0")}} | {{CompatUnknown}} | 12.10 | 6.0 |
Usable in Workers | {{CompatVersionUnknown}} | {{CompatVersionUnknown}} | {{CompatGeckoMobile("37.0")}} | {{CompatUnknown}} | {{CompatUnknown}} | {{CompatUnknown}} |
Firefox中的WebSocket支持正在继续跟踪WebSocket规范的发展。Firefox 6实现了底层协议的version 7,而Firefox 7实现了version 8(如IETF draft 10所指定的)。Firefox移动版在Firefox7.0支持WebSocket。
在Gecko 6.0 {{geckoRelease("6.0")}}之前,一些网站认为WebSocket
对象是错误的,意味着WebSocket
服务没有前缀,此对象已重命名为MozWebSocket
。
从Gecko 7.0 {{geckoRelease("7.0")}}中开始,network.websocket.max-connections是
用于确定每次可以打开的WebSocket连接的最大数量的最大连接首选项。默认值是200。
从Gecko 8.0 {{geckoRelease("8.0")}}中开始,WebSocket
协议的deflate-stream扩展已经被禁用,因为它已经在规范草案中废弃了。这解决了某些站点的不兼容性问题。
在Gecko 11.0之前,传入和传出消息的大小都限制在16MB。它们现在的大小可能高达 2 GB 。然而,请注意,内存限制(尤其是在移动设备上)使其成为理论上的最大限制,而不是实际的最大限制。实际上,在没有足够内存的设备上,这种大小的传输将会失败。
此外,ArrayBuffer对二进制数据的收发支持已经实现。
从Gecko 11.0开始,WebSocket API不需要前缀。