interface WebSocket : EventTarget { // FIXME: A second "protocols" argument should be added once supported constructor(USVString url); readonly attribute USVString url; const unsigned short CONNECTING = 0; const unsigned short OPEN = 1; const unsigned short CLOSING = 2; const unsigned short CLOSED = 3; readonly attribute unsigned short readyState; // readonly attribute unsigned long long bufferedAmount; attribute EventHandler onopen; attribute EventHandler onerror; attribute EventHandler onclose; readonly attribute DOMString extensions; readonly attribute DOMString protocol; undefined close(optional unsigned short code, optional USVString reason); attribute EventHandler onmessage; attribute DOMString binaryType; undefined send(USVString data); // FIXME: Support other kinds of send() calls // undefined send(Blob data); // undefined send(ArrayBuffer data); // undefined send(ArrayBufferView data); };