--- title: WebSocket slug: Web/API/WebSocket tags: - API - WebSocket - WebSockets translation_of: Web/API/WebSocket ---
{{APIRef("Web Sockets API")}}{{ SeeCompatTable() }}
Das WebSocket
-Objekt bietet die API für das Erstellen und Verwalten einer WebSocket-Verbindung zu einem Server, ebenso dient es auch dem Senden und dem Empfangen von Daten auf der Verbindung.
Der WebSocket-Konstruktor akzeptiert einen benötigten und einen optionalen Parameter:
WebSocket WebSocket( in DOMString url, in optional DOMString protocols ); WebSocket WebSocket( in DOMString url, in optional DOMString[] protocols );
url
protocols
{{ optional_inline() }}protocol
verschiedene Interaktionen mit dem Client handeln). Falls du kein Protokoll angibst, wird ein leerer String verwendet.Der Konstruktur kann folgende Exceptions werfen:
SECURITY_ERR
void close(in optional unsigned long code, in optional DOMString reason); |
void send(in DOMString data); |
Attribut | Typ | Beschreibung |
binaryType |
{{ DOMXref("DOMString") }} | Ein String indiziert den Typ der Binärdaten, die von der Verbindung übertragen werden. Dies sollte entweder "blob" sein, falls DOM-Objekte {{ domxref("Blob") }} genutzt werden oder "arraybuffer" falls ArrayBuffer -Objekte genutzt werden. |
bufferedAmount |
unsigned long |
Die Anzahl der Bytes der Daten, welche bereits durch Aufrufe von {{ manch("send") }} gebuffert wurden, allerdings noch nicht über das Netzwerk versand wurden. Dieses Feld setzt sich nicht auf Null zurück, wenn die Verbindung beendet wurde; falls du weiterhin {{ manch("send") }} aufrufst, wird dieses Feld weiterhin ansteigen. Read only. |
extensions |
{{ DOMXref("DOMString") }} | Die Erweiterungen, die von dem Server gewählt wurden. Aktuell ist dies nur ein leerer String oder eine Liste von Erweiterungen, die von der Verbindung verhandelt wurden. |
onclose |
{{ domxref("EventListener") }} | Ein Event-Listener welcher aufgerufen wird, wenn der readyState der WebSocket-Verbindung auf CLOSED wechselt. Den Listener erreicht ein CloseEvent welches "close" heißt. |
onerror |
{{ domxref("EventListener") }} | Ein Event-Listener welcher bei Fehlern aufgerufen wird. Dies ist ein einfaches Event welches "error" genannt wird. |
onmessage |
{{ domxref("EventListener") }} | Ein Event-Listener welcher aufgerufen wird, wenn eine Nachricht vom Server empfangen wird. Den Listener erreicht ein MessageEvent welches "message" heißt. |
onopen |
{{ domxref("EventListener") }} | Ein Event-Listener welcher aufgerufen wird, wenn der readyState der WebSocket-Verbindung auf OPEN wechselt; dies indiziert, dass die Verbindung bereit ist, dass man Daten versenden und empfangen kann. Dieses Event ist eine einfaches Event, es heißt "open". |
protocol |
{{ DOMXref("DOMString") }} | Ein String welcher dne Namen des Sub-Protokolls nennt, welches vom Server ausgewählt wurde; dieses Protokoll wird eines sein, welches in den Strings des protocols -Parameter beim Erstellen des WebSocket-Objekt angegeben wurde. |
readyState |
unsigned short |
Der aktuelle Status der Verbindung; dies ist einer der {{ anch("Ready state Konstanten") }}. Read only. |
url |
{{ DOMXref("DOMString") }} | Die URL welche beim Konstruktor angegeben wurde. Dies ist immer die absolute URL. Read only. |
Diese Konstanten werden vom readyState
Attribut genutzt, um den Status der WebSocket-Verbindung zu beschreiben.
Konstante | Inhalt | Beschreibung |
CONNECTING |
0 |
Die Verbindung ist noch nicht hergestellt. |
OPEN |
1 |
Die Verbindung ist hergestellt und bereit darüber zu kommunizieren. |
CLOSING |
2 |
Die Verbindung ist im Prozess des Schließens. |
CLOSED |
3 |
Die Verbindung ist geschlossen oder konnte nicht hergestellt werden. |
Schließt die WebSocket-Verbindung oder den Verbindungsversuch, falls dieser gerade existiert. Falls die Verbindung bereits CLOSED
ist, macht diese Methode überhaupt nichts.
void close( in optional unsigned short code, in optional DOMString reason );
code
{{ optional_inline() }}reason
{{ optional_inline() }}INVALID_ACCESS_ERR
code
wurde gesetzt.SYNTAX_ERR
reason
-String ist zu lang oder enthält ungültige Zeichen.In Gecko vor Version Gecko 8.0 unterstützte diese Methode überhaupt keine Parameter. {{ geckoRelease("8.0") }}.
Überträgt Daten zu dem Server über die WebSocket-Verbindung.
void send( in DOMString data ); void send( in ArrayBuffer data ); void send( in Blob data );
data
INVALID_STATE_ERR
OPEN
.SYNTAX_ERR
data
enthält ungültige Zeichen.Notiz: Geckos Implementierung von der send()
Methode unterscheidet sich ein wenig von der Spezifikation in {{Gecko("6.0")}}; Gecko gibt einen boolean
zurück, welcher darüber auskunft gibt, ob die Verbindung immer noch hergestellt ist oder nicht (und, durch Erweiterung, dass die Daten erfolgreich gesammelt oder übertragen wurden); dies wurde in {{Gecko("8.0")}} korrigiert.
In {{Gecko("11.0")}} ist die Unterstützung für ArrayBuffer
implementiert aber nicht die für {{ domxref("Blob") }} Datentypen.
{{ CompatibilityTable() }}
Feature | Chrome | Firefox (Gecko) | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|
Basic support | {{ CompatVersionUnknown() }} | {{ CompatGeckoDesktop("2.0") }} | {{ CompatVersionUnknown() }} | {{ CompatVersionUnknown() }} | {{ CompatUnknown() }} |
Sub-protocol support | {{ CompatUnknown() }} | {{ CompatGeckoDesktop("6.0") }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
Feature | Android | Firefox Mobile (Gecko) | IE Mobile | Opera Mobile | Safari Mobile |
---|---|---|---|---|---|
Basic support | {{ CompatUnknown() }} | {{ CompatGeckoMobile("7.0") }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
Sub-protocol support | {{ CompatUnknown() }} | {{ CompatGeckoMobile("7.0") }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} | {{ CompatUnknown() }} |
In Gecko 6.0 ist der Konstruktur mit einem Prefix ausgestattet; du must MozWebSocket()
benutzen:
var mySocket = new MozWebSocket("http://www.example.com/socketserver");
Das extensions
-Attribut wurde bis Gecko 8.0 nicht unterstützt.
{{ languages ( {"zh-tw": "zh_tw/WebSockets/WebSockets_reference/WebSocket"} ) }}