--- title: WebSockets slug: Web/API/WebSockets_API tags: - References - WebSockets translation_of: Web/API/WebSockets_API ---

{{DefaultAPISidebar("Websockets API")}}

WebSockets 是一种先进的技术。它可以在用户的浏览器和服务器之间打开交互式通信会话。使用此API,您可以向服务器发送消息并接收事件驱动的响应,而无需通过轮询服务器的方式以获得响应。

接口

WebSocket
用于连接WebSocket服务器的主要接口,之后可以在这个连接上发送 和接受数据。
CloseEvent
连接关闭时WebSocket对象发送的事件。
MessageEvent
当从服务器获取到消息的时候WebSocket对象触发的事件。

工具

参见

浏览器兼容性

{{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}}

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 {{geckoRelease("6.0")}}之前,一些网站认为WebSocket对象是错误的,意味着WebSocket服务没有前缀,此对象已重命名为MozWebSocket

Gecko 7.0

从Gecko 7.0 {{geckoRelease("7.0")}}中开始,network.websocket.max-connections是用于确定每次可以打开的WebSocket连接的最大数量的最大连接首选项。默认值是200。

Gecko 8.0

从Gecko 8.0 {{geckoRelease("8.0")}}中开始,WebSocket协议的deflate-stream扩展已经被禁用,因为它已经在规范草案中废弃了。这解决了某些站点的不兼容性问题。

Gecko 11.0

在Gecko 11.0之前,传入和传出消息的大小都限制在16MB。它们现在的大小可能高达 2 GB 。然而,请注意,内存限制(尤其是在移动设备上)使其成为理论上的最大限制,而不是实际的最大限制。实际上,在没有足够内存的设备上,这种大小的传输将会失败。

此外,ArrayBuffer对二进制数据的收发支持已经实现。


从Gecko 11.0开始,WebSocket API不需要前缀。