WebSockets work in Chrome 16+, Edge 12+, Firefox 11+, Safari 7+ on macOS, Safari 6+ on iOS, Opera 12.1+, and Samsung Internet 4+. Learn the API, use cases, and limits.

Prince Dewani
May 1, 2026
WebSockets is an IETF protocol defined in RFC 6455 that opens a persistent two-way channel between a browser and a server over one TCP connection. It works in Chrome 16+, Edge 12+, Firefox 11+, Safari 7+ on macOS, Safari 6+ on iOS, Opera 12.1+, Samsung Internet 4+, and Internet Explorer 10 and 11, at near 99% global support.
This guide covers what WebSockets are, the browsers that support them, how they work, the use cases, and the limitations.
WebSockets is a protocol that opens a single, persistent TCP connection and lets a browser and a server push messages to each other at any time without polling. The IETF standardized it as RFC 6455, and the WebSocket JavaScript interface is defined by the WHATWG HTML Living Standard.
WebSockets ship in every modern browser, with global support near 99% across desktop and mobile. The protocol has been stable since the IETF published RFC 6455, so once a browser shipped it, the WebSocket interface has not broken across versions.
Chrome supports WebSockets from Chrome 16 on Windows, macOS, Linux, ChromeOS, and Android. Chrome 4 to 15 had WebSockets disabled by default after a security bug in the early hybi-00 protocol draft. Chrome ships the wss:// secure variant on every supported version and tracks RFC 6455 in the upstream Chromium WebSocket stack.
Microsoft Edge supports WebSockets from Edge 12 on Windows, macOS, and Linux. Pre-Chromium EdgeHTML versions 12 to 18 used the Microsoft WebSocket stack inherited from Internet Explorer 10. Chromium-based Edge 79 and later track the upstream Chromium implementation, so behavior is consistent across every Edge release still in support.
Firefox supports WebSockets from Firefox 11 on Windows, macOS, Linux, and Android. Firefox 6 to 10 used the prefixed MozWebSocket constructor while Mozilla iterated on the spec. Firefox 4 and 5 had WebSockets disabled by default after the same hybi-00 vulnerability that affected Chrome, and Firefox 2 to 3.6 did not support WebSockets at all.
Safari supports WebSockets from Safari 7 on macOS and from Safari 6 on iOS and iPadOS. Safari 5 to 6 on macOS used an older protocol draft that the rest of the web no longer accepts, so connections to RFC 6455 servers fail on those versions. Safari 4 and earlier did not support WebSockets, and Apple ships the wss:// secure variant on every supported Safari version.
Opera supports WebSockets from Opera 12.1 on Windows, macOS, and Linux. Opera 11 to 12.0 had WebSockets disabled by default after the hybi-00 protocol bug, and Opera 9 to 10 did not support WebSockets at all. Opera Mobile 12.1+ and Opera for Android both ship the protocol on phones and tablets, while Opera Mini does not expose the WebSocket interface in any version.
Samsung Internet supports WebSockets from Samsung Internet 4 on Galaxy phones and tablets. The browser tracks the Chromium WebSocket implementation, so any Samsung Internet release on a current Android device ships RFC 6455 with the wss:// secure variant on by default. Samsung Internet 1 to 3 did not support WebSockets.
Chrome for Android supports WebSockets from version 4.4 onward, which covers every Android device sold in the last decade. The legacy stock Android Browser based on WebView 3.x and earlier did not support WebSockets. Firefox for Android also supports WebSockets from Firefox 11 on phones and tablets.
Internet Explorer supports WebSockets from Internet Explorer 10 on Windows 7, Windows 8, and Windows Server 2012. Internet Explorer 6 to 9 did not support WebSockets at all. Microsoft has retired Internet Explorer 11, so move WebSocket workloads to Chromium-based Edge or Chrome for any new project.
Note: WebSockets behave differently across browsers, proxies, and OS. Test them on real browsers and OS with TestMu AI. Try TestMu AI free!
WebSockets work by upgrading an HTTP connection to a long-lived TCP socket and then exchanging framed messages in both directions. The handshake and the message loop follow these steps:
The wss:// scheme runs the same protocol over TLS on port 443, which lets the connection traverse most corporate proxies and firewalls without extra configuration. Paste this snippet into the DevTools console of Chrome, Edge, Firefox, or Safari to confirm WebSocket support and watch a frame round-trip through a public echo server.
// Paste this into the DevTools console to confirm WebSocket support and open a test connection.
if ("WebSocket" in window) {
console.log("WebSocket is supported in this browser.");
const socket = new WebSocket("wss://echo.websocket.events");
socket.addEventListener("open", () => {
console.log("Connection opened, sending a test frame.");
socket.send("hello from TestMu AI");
});
socket.addEventListener("message", (event) => {
console.log("Echo received:", event.data);
socket.close();
});
socket.addEventListener("close", (event) => {
console.log("Connection closed with code", event.code);
});
socket.addEventListener("error", () => {
console.log("WebSocket error: the echo server may be unreachable from this network.");
});
} else {
console.log("WebSocket is not supported in this browser.");
}WebSockets fit any product that needs server-pushed updates faster than HTTP polling can deliver, with a roundtrip cost low enough for sub-second user feedback. The pattern that locks teams into WebSockets is bidirectional traffic, where both client and server initiate messages.
WebSockets buy real-time delivery at the cost of a long-lived connection that traditional HTTP infrastructure does not always handle cleanly. The painful failures cluster around proxies, load balancing, scaling, and HTTP/2 multiplexing.
In my experience, the limitation that bites teams hardest is the proxy timeout. A real-time feature that works perfectly on home Wi-Fi falls silent on a hotel network because the proxy closes the socket after 60 seconds and the client never reconnects until the user refreshes the page. Wire ping frames and an exponential-backoff reconnect handler before you ship.
All WebSocket version numbers and platform notes in this guide come from these primary sources:
Did you find this page helpful?
More Related Hubs
TestMu AI forEnterprise
Get access to solutions built on Enterprise
grade security, privacy, & compliance