michael@0: /* -*- Mode: IDL; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: * michael@0: * The origin of this IDL file is michael@0: * http://www.whatwg.org/html/#network michael@0: * michael@0: * © Copyright 2004-2011 Apple Computer, Inc., Mozilla Foundation, and Opera Software ASA. michael@0: * You are granted a license to use, reproduce and create derivative works of this document. michael@0: */ michael@0: michael@0: enum BinaryType { "blob", "arraybuffer" }; michael@0: michael@0: [Func="mozilla::dom::WebSocket::PrefEnabled", michael@0: Constructor(DOMString url), michael@0: Constructor(DOMString url, DOMString protocols), michael@0: Constructor(DOMString url, sequence protocols)] michael@0: interface WebSocket : EventTarget { michael@0: michael@0: readonly attribute DOMString url; michael@0: michael@0: // ready state michael@0: const unsigned short CONNECTING = 0; michael@0: const unsigned short OPEN = 1; michael@0: const unsigned short CLOSING = 2; michael@0: const unsigned short CLOSED = 3; michael@0: michael@0: readonly attribute unsigned short readyState; michael@0: michael@0: readonly attribute unsigned long bufferedAmount; michael@0: michael@0: // networking michael@0: michael@0: attribute EventHandler onopen; michael@0: michael@0: attribute EventHandler onerror; michael@0: michael@0: attribute EventHandler onclose; michael@0: michael@0: readonly attribute DOMString extensions; michael@0: michael@0: readonly attribute DOMString protocol; michael@0: michael@0: [Throws] michael@0: void close([Clamp] optional unsigned short code, optional DOMString reason); michael@0: michael@0: // messaging michael@0: michael@0: attribute EventHandler onmessage; michael@0: michael@0: attribute BinaryType binaryType; michael@0: michael@0: [Throws] michael@0: void send(DOMString data); michael@0: michael@0: [Throws] michael@0: void send(Blob data); michael@0: michael@0: [Throws] michael@0: void send(ArrayBuffer data); michael@0: michael@0: [Throws] michael@0: void send(ArrayBufferView data); michael@0: };