Zurück zur Skill-Übersicht

Skill-Wissen und Projektmarkt

WebSocket

Freelancer, Projekte, Experten und Wissen rund um WebSocket.

Kategorie

Backend

Einordnung

WebSocket Freelancer, Projekte, Experten und Wissen auf jobtic.com

WebSocket gehört zu den gefragtesten Kompetenzen im modernen IT-Projektmarkt. Unternehmen, Recruiter, Projektanbieter und Agenturen suchen kontinuierlich nach qualifizierten IT-Freelancern, Beratern, Entwicklern, Consultants, Administrators, Engineers und Spezialisten mit Erfahrung in WebSocket.

Auf jobtic.com finden Unternehmen und Freelancer eine moderne Plattform für IT-Projekte, Projektvermittlung, Freelancer-Profile, Experten-Suche, Projektakquise und berufliche Vernetzung rund um WebSocket und viele weitere Technologien, Tools, Systeme, Methoden und IT-Bereiche.

Wikipedia

WebSocket

Artikel öffnen
WebSocket-Protokoll Familie: Internetprotokollfamilie Einsatzgebiet: bidirektionale Verbindung zwischen
einer Webanwendung und einem WebSocket-Server Port: 80/TCP, 443/TCP
WebSocket im TCP/IP-Protokollstapel:
Anwendung WebSocket
Transport TCP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI
Standards: RFC 6455[1]

Das WebSocket-Protokoll ist ein auf TCP basierendes Netzwerkprotokoll, das entworfen wurde, um eine bidirektionale Verbindung zwischen einem Webbrowser und einem WebSocket-Server bzw. einem Webserver, der auch WebSockets unterstützt, herzustellen.

Vorteile gegenüber reinem HTTP

Während bei einer reinen HTTP-Verbindung jede Aktion des Servers eine vorhergehende Anfrage des Clients erfordert, reicht es beim WebSocket-Protokoll, wenn der Client die Verbindung öffnet. Der Server kann dann diese offene Verbindung aktiv verwenden und neue Informationen an den Client ausliefern, ohne auf eine neue Verbindung des Clients zu warten. Eine vom Server initiierte Übertragung ist bei einer reinen HTTP-Verbindung nur durch verzögertes Antworten auf eine vom Client initiierte Anfrage möglich (Long Polling). Seit HTTP/2 kann der Server auch Push-Meldungen absetzen. Zudem entfallen bei WebSockets die durch den HTTP-Header verursachten zusätzlichen Daten, die bei jeder Anfrage einige hundert Bytes umfassen können. Technisch betrachtet startet bei WebSocket, wie bei HTTP, der Client eine Anfrage, mit dem Unterschied, dass nach der Übertragung der Daten zum Verbindungsaufbau die zugrundeliegende TCP-Verbindung bestehen bleibt und asynchrone Übertragungen in beide Richtungen ermöglicht.

URI-Schema

Die WebSocket-Protokoll-Spezifikation definiert zwei neue URI-Schemata, ws: für unverschlüsselte, und wss: für verschlüsselte Verbindungen.

Der WebSocket-Protokoll-Handshake

Zu Beginn jeder Verbindung führen Server und Client einen sogenannten Handshake durch. Dieser ähnelt dem HTTP-Header und ist vollständig abwärtskompatibel zu diesem, was die Nutzung des Standard-HTTP-Ports „80“ zugleich für normale HTTP-Kommunikation als auch für die Websocket-Nutzung ermöglicht. Der Handshake beinhaltet außerdem weitere Informationen (z. B. die verwendete Protokollversion).

Anfrage des Clients

Im Folgenden ist ein Beispielhandshake des siebzehnten Protokollentwurfs (draft-ietf-hybi-thewebsocketprotocol-17) dargestellt und erläutert:[2]

Achtung: Ältere Protokollentwürfe können sehr stark von dieser Version des Protokolls abweichen, da es aufgrund von Sicherheitsbedenken umgestaltet wurde. Dies betrifft insbesondere die Entwürfe vor draft-ietf-hybi-thewebsocketprotocol-04.

 GET /chat HTTP/1.1
 Host: server.example.com
 Upgrade: websocket
 Connection: Upgrade
 Sec-WebSocket-Key: dGhlIHNhbXBsZSBub25jZQ==
 Origin: http://example.com
 Sec-WebSocket-Protocol: chat, superchat
 Sec-WebSocket-Version: 13

Wie auch im HTTP gibt der Client an, auf welche Ressource (hier: /chat) und auf welchen Host (hier: server.example.com) er zugreifen möchte. Außerdem fordert der Client ein Upgrade auf das Websocket-Protokoll. Der zufällig generierte „Sec-WebSocket-Key“ dient zur Überprüfung, ob der Server die Anfrage tatsächlich gelesen und verstanden hat (siehe Abschnitt Antwort des Servers). Unter „Sec-WebSocket-Protocol“ hat der Client die Möglichkeit, auf das Websocket-Protokoll aufbauende Protokolle anzugeben, die die Clientanwendung unterstützt (hier: ein Chat-Protokoll). Selbsterklärend sollte unter „Sec-WebSocket-Version“ die verwendete Protokollversion angegeben werden.

Antwort des Servers

Auf die obige Beispielanfrage könnte ein Websocket-Server beispielsweise wie folgt antworten:

 HTTP/1.1 101 Switching Protocols
 Upgrade: websocket
 Connection: Upgrade
 Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo=
 Sec-WebSocket-Protocol: chat

Durch den HTTP-Statuscode 101 und die folgenden zwei Zeilen erklärt der Server, dass er mit dem Wechsel des Protokolls einverstanden ist. Von diesem Zeitpunkt an verwenden beide ein binäres Protokoll, das nicht mehr HTTP-kompatibel ist. Es ist in Pakete aufgeteilt, die als Binär oder Text, als Ping oder Pong oder als Ende der Verbindung markiert sind und die Länge des Inhalts angeben.[3]

Der zurückgesendete Schlüssel unter „Sec-WebSocket-Accept“ dient der Verifikation, dass der Server die Anfrage des Clients gelesen hat. Er wird wie folgt erstellt: An den oben erwähnten, Base64-kodierten String, den der Client sendet („Sec-WebSocket-Key“) wird der Globally Unique Identifier 258EAFA5-E914-47DA-95CA-C5AB0DC85B11 angehängt. Daraufhin wird ein SHA1-Hash des entstandenen Schlüssels erstellt und Base64-kodiert. Anzumerken ist hierbei, dass der ursprünglich empfangene Schlüssel zwar Base64-kodiert ist, jedoch zu keinem Zeitpunkt dekodiert wird.

In diesem Beispiel gibt der Server zusätzlich an, dass er das angeforderte Protokoll „chat“ kennt („Sec-WebSocket-Protocol“).

Beispiel

WebSocket Client in JavaScript

var socket = new WebSocket(urlToWebsocketServer);

// callback-Funktion wird gerufen, wenn die Verbindung erfolgreich aufgebaut werden konnte
socket.onopen = function {
    console.log("Verbindung wurde erfolgreich aufgebaut");
};

// callback-Funktion wird gerufen, wenn eine neue Websocket-Nachricht eintrifft
socket.onmessage = function (messageEvent) {
    console.log(messageEvent.data);
};

// callback-Funktion wird gerufen, wenn ein Fehler auftritt
socket.onerror = function (errorEvent) {
    console.log("Error! Die Verbindung wurde unerwartet geschlossen");
};

socket.onclose = function (closeEvent) {
    console.log('Die Verbindung wurde geschlossen --- Code: ' + closeEvent.code + ' --- Grund: ' + closeEvent.reason);
};

Erweiterungen

Die Spezifikation erlaubt die Erweiterung des Websocket-Protokolls durch definierte „Extensions“. Diese werden zwischen Client und Server ausgehandelt. Beispiele:

Browser-Unterstützung

Literatur

  • Peter Leo Gorski, Luigi Lo Iacono, Hoai Viet Nguyen: WebSockets – Moderne HTML5-Echtzeitanwendungen entwickeln, Hanser, München und Wien 2015, ISBN 978-3-446-44371-6

Weblinks

Wiktionary: WebSocket – Bedeutungserklärungen, Wortherkunft, Synonyme, Übersetzungen

Einzelnachweise

  1. RFC: 6455 – The WebSocket Protocol Version 13. 2011 (englisch).
  2. Der vorliegende Beispielhandshake entstammt der siebzehnten Version des WebSocket Protocol Draft der IETF
  3. RFC: 6455 – The WebSocket Protocol Version 13. 2011, Abschnitt 5.2: Base Framing Protocoll. (englisch).
  4. The WebSocket API (WebSockets). In: developer.mozilla.org. Abgerufen am 22. März 2016 (englisch).
Standards des World Wide Web Consortiums (W3C)
VD
Empfehlungen

ActivityPub | ARIA | Canonical XML | CDF | CSS | DOM | Geolocation API | HTML | HTML5 | InkML | ITS | JSON-LD | MathML | OWL | P3P | PLS | PNG | RDF | RDF-Schema | RIF | SCXML | SISR | SKOS | SMIL | SOAP | SRGS | SSML | SVG | SPARQL | Timed Text | Turtle | VoiceXML | WSDL | XForms | XHTML | XHTML+RDFa | XInclude | XLink | XML | XML Base | XML-Encryption | XML Events | XML Information Set | XML Namespace | XML Schema | XML Signature | XPath | XPointer | XProc | XQuery | XSL | XSL-FO | XSLT (Elemente)

Arbeitsentwürfe
und Kandidaten

CCXML | CURIE | SMIL Timesheets | sXBL | WICD | XFrames | XBL | XHTML+MathML+SVG | XMLHttpRequest

Anmerkungen

XAdES | XFDL | XHTML+SMIL | XUP

Richtlinien

Web Content Accessibility Guidelines | Multimodal Interaction Activity | Markup Validation Service

Initiativen

Web Accessibility Initiative

Normdaten (Sachbegriff): GND: 1068348321 (GND Explorer, lobid, OGND)
Wikipedia

Dieser Text basiert auf dem Artikel WebSocket aus der freien Enzyklopädie Wikipedia und steht unter der Lizenz Creative Commons CC-BY-SA 3.0 Unported. Eine Liste der Autoren ist in der Wikipedia verfügbar.

WebSocket auf jobtic.com

Backend

Experten finden

jobtic.com verbindet IT-Freiberufler, Selbstständige, Consultants, Projektanbieter, IT-Dienstleister und Unternehmen in einer zentralen IT-Projektbörse für den deutschsprachigen Markt. Die Plattform unterstützt die Suche nach WebSocket Freelancern, WebSocket Projekten, Contracting-Einsätzen, Remote-Projekten, IT-Jobs, Interim-Rollen, technischen Experten und spezialisierten Beratern.

Chancen entdecken

Freelancer profitieren von einer professionellen Präsentation ihrer Expertise im Bereich WebSocket und erhalten Zugriff auf aktuelle Projektangebote, Projektanfragen und neue Karrierechancen im IT-Freelancer-Markt. Durch moderne Such- und Filterfunktionen lassen sich passende Projekte, Auftraggeber, Recruiter und Kontakte schnell identifizieren.

Wissen einordnen

Neben der Projekt- und Expertenplattform bietet jobtic.com umfangreiche Informationen, Hintergründe und Wiki-Inhalte rund um WebSocket. Dazu gehören Grundlagen, Definitionen, Einsatzbereiche, Entwicklungen, Versionen, Methoden, technische Zusammenhänge, Best Practices und aktuelle Marktinformationen zu WebSocket.

Vernetzung stärken

Unsere jobtic-Übersicht zu WebSocket kombiniert Wissensdatenbank, Projektbörse, Freelancer-Verzeichnis, Experten-Suche und Projektmarkt in einer zentralen Plattform. Besucher finden hier sowohl Informationen zu WebSocket als auch passende Freelancer, Berater, Entwickler, Consultants, Administratoren, Support-Spezialisten und aktuelle IT-Projekte mit Bezug zu WebSocket.

Kontakte aufbauen

jobtic.com unterstützt Freelancer und Unternehmen dabei, schneller passende Projekte, Experten und Geschäftskontakte im Bereich WebSocket zu finden. Egal ob Projektakquise, Expertenvermittlung, Freelancer-Suche, Contracting, IT-Consulting oder spezialisierte Projektbesetzung - jobtic.com bietet die passende Plattform für den modernen IT-Projektmarkt.

Zentral vernetzen

Wer nach WebSocket Freelancern, WebSocket Experten, WebSocket Projekten, WebSocket Beratern, WebSocket Consulting, WebSocket Contracting, WebSocket Projektbörse, WebSocket Freelancer-Profilen oder aktuellen Entwicklungen rund um WebSocket sucht, findet auf jobtic.com eine zentrale Anlaufstelle für Wissen, Projekte und professionelle Vernetzung im IT-Umfeld.

Passende Projekte zu WebSocket

Mehr Projekte

Projekte veröffentlichen

Unternehmen können Projekte mit Anforderungen, Laufzeiten, Technologien, Einsatzorten, Remote-Anteilen, Budgetrahmen und Projektbeschreibungen veröffentlichen. Gleichzeitig ermöglicht jobtic.com die gezielte Suche nach verfügbaren WebSocket Spezialisten mit passenden Erfahrungen, Branchenkenntnissen und technischen Fähigkeiten.

Aktuell sind keine sichtbaren Projekte verfügbar.