{
 "caniuse": [
  "websockets"
 ],
 "compat_features": [
  "api.CloseEvent",
  "api.CloseEvent.CloseEvent",
  "api.CloseEvent.code",
  "api.CloseEvent.reason",
  "api.CloseEvent.wasClean",
  "api.WebSocket",
  "api.WebSocket.WebSocket",
  "api.WebSocket.WebSocket.url_parameter_http_https_relative",
  "api.WebSocket.binaryType",
  "api.WebSocket.bufferedAmount",
  "api.WebSocket.close",
  "api.WebSocket.close_event",
  "api.WebSocket.error_event",
  "api.WebSocket.extensions",
  "api.WebSocket.message_event",
  "api.WebSocket.open_event",
  "api.WebSocket.protocol",
  "api.WebSocket.protocol_rfc_6455",
  "api.WebSocket.readyState",
  "api.WebSocket.send",
  "api.WebSocket.url",
  "api.WebSocket.worker_support",
  "api.WebSocketError",
  "api.WebSocketError.WebSocketError",
  "api.WebSocketError.closeCode",
  "api.WebSocketError.reason",
  "http.headers.Sec-WebSocket-Accept",
  "http.headers.Sec-WebSocket-Extensions",
  "http.headers.Sec-WebSocket-Key",
  "http.headers.Sec-WebSocket-Protocol",
  "http.headers.Sec-WebSocket-Version"
 ],
 "description": "The WebSocket API opens a two-way communication channel between the user's browser and a server.",
 "description_html": "The <code>WebSocket</code> API opens a two-way communication channel between the user's browser and a server.",
 "kind": "feature",
 "name": "WebSockets",
 "spec": [
  "https://websockets.spec.whatwg.org/"
 ],
 "status": {
  "baseline": "high",
  "baseline_high_date": "2018-01-29",
  "baseline_low_date": "2015-07-29",
  "by_compat_key": {
   "api.CloseEvent": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "8",
     "firefox_android": "8",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.CloseEvent.CloseEvent": {
    "baseline": "high",
    "baseline_high_date": "2019-02-02",
    "baseline_low_date": "2016-08-02",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "14",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.CloseEvent.code": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "8",
     "firefox_android": "8",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.CloseEvent.reason": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "8",
     "firefox_android": "8",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.CloseEvent.wasClean": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "8",
     "firefox_android": "8",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.WebSocket": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.WebSocket.url_parameter_http_https_relative": {
    "baseline": "low",
    "baseline_low_date": "2024-05-17",
    "support": {
     "chrome": "125",
     "chrome_android": "125",
     "edge": "125",
     "firefox": "124",
     "firefox_android": "124",
     "safari": "17.3",
     "safari_ios": "17.3"
    }
   },
   "api.WebSocket.binaryType": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket.bufferedAmount": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.close": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.close_event": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.error_event": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.extensions": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket.message_event": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.open_event": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.protocol": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "15",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket.protocol_rfc_6455": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket.readyState": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.send": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "5",
     "safari_ios": "4.2"
    }
   },
   "api.WebSocket.url": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "18",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "api.WebSocket.worker_support": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "5",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "37",
     "firefox_android": "37",
     "safari": "5",
     "safari_ios": "5"
    }
   },
   "api.WebSocketError": {
    "baseline": false,
    "support": {
     "chrome": "124",
     "chrome_android": "124",
     "edge": "124"
    }
   },
   "api.WebSocketError.WebSocketError": {
    "baseline": false,
    "support": {
     "chrome": "124",
     "chrome_android": "124",
     "edge": "124"
    }
   },
   "api.WebSocketError.closeCode": {
    "baseline": false,
    "support": {
     "chrome": "124",
     "chrome_android": "124",
     "edge": "124"
    }
   },
   "api.WebSocketError.reason": {
    "baseline": false,
    "support": {
     "chrome": "124",
     "chrome_android": "124",
     "edge": "124"
    }
   },
   "http.headers.Sec-WebSocket-Accept": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "http.headers.Sec-WebSocket-Extensions": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "http.headers.Sec-WebSocket-Key": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "http.headers.Sec-WebSocket-Protocol": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   },
   "http.headers.Sec-WebSocket-Version": {
    "baseline": "high",
    "baseline_high_date": "2018-01-29",
    "baseline_low_date": "2015-07-29",
    "support": {
     "chrome": "16",
     "chrome_android": "18",
     "edge": "12",
     "firefox": "11",
     "firefox_android": "14",
     "safari": "6",
     "safari_ios": "6"
    }
   }
  },
  "support": {
   "chrome": "5",
   "chrome_android": "18",
   "edge": "12",
   "firefox": "11",
   "firefox_android": "14",
   "safari": "5",
   "safari_ios": "4.2"
  }
 },
 "id": "websockets",
 "groups": [],
 "specs": [
  {
   "url": "https://websockets.spec.whatwg.org/",
   "seriesComposition": "full",
   "shortname": "websockets",
   "series": {
    "shortname": "websockets",
    "currentSpecification": "websockets",
    "title": "WebSockets",
    "shortTitle": "WebSockets",
    "nightlyUrl": "https://websockets.spec.whatwg.org/"
   },
   "organization": "WHATWG",
   "groups": [
    {
     "name": "HTML Workstream",
     "url": "https://websockets.spec.whatwg.org/"
    }
   ],
   "nightly": {
    "url": "https://websockets.spec.whatwg.org/",
    "status": "Living Standard",
    "alternateUrls": [],
    "repository": "https://github.com/whatwg/websockets",
    "sourcePath": "index.bs",
    "filename": "index.html"
   },
   "title": "WebSockets",
   "source": "whatwg",
   "shortTitle": "WebSockets",
   "categories": [
    "browser"
   ],
   "standing": "good",
   "tests": {
    "repository": "https://github.com/web-platform-tests/wpt",
    "testPaths": [
     "websockets"
    ]
   },
   "fragment": null
  }
 ],
 "mdnUrls": [
  {
   "slug": "Web/API/WebSockets_API",
   "title": "WebSocket API (WebSockets)",
   "anchor": null,
   "url": "https://developer.mozilla.org/docs/Web/API/WebSockets_API"
  }
 ],
 "standardPositions": [],
 "hasNegativeStandardPosition": false,
 "stateOfSurveys": [
  {
   "name": "State of JS 2025",
   "url": "https://2025.stateofjs.com/en-US/features/#browser_api_features",
   "question": "features",
   "subQuestion": "browser_api_features",
   "path": "dataAPI.surveys.state_of_js.js2025.features.browser_api_features.combined.allEditions.0.buckets.0.entity"
  }
 ],
 "chromeUseCounters": {},
 "interop": [],
 "wpt": {
  "url": "https://wpt.fyi/results?q=feature:websockets"
 },
 "developerSignals": null,
 "bugs": {
  "chrome": [
   "https://issues.chromium.org/issues/325979102",
   "https://bugs.chromium.org/p/chromium/issues/detail?id=1286832",
   "https://bugs.chromium.org/p/chromium/issues/detail?id=423609",
   "https://crbug.com/801564",
   "http://crbug.com/12497"
  ],
  "firefox": [
   "https://bugzil.la/775368"
  ],
  "firefox_android": [
   "https://bugzil.la/775368"
  ]
 },
 "baselineLowDateAsObject": "2015-07-29T00:00:00.000Z",
 "baselineHighDateAsObject": "2018-01-29T00:00:00.000Z"
}