Verbinden mit WebSockets (HTML)
[ Dieser Artikel richtet sich an Windows 8.x- und Windows Phone 8.x-Entwickler, die Windows-Runtime-Apps schreiben. Wenn Sie für Windows 10 entwickeln, finden Sie weitere Informationen unter neueste Dokumentation]
Mit Features im Windows.Networking.Sockets-Namespace können Sie mithilfe von WebSockets Daten senden und empfangen, um eine sichere, bidirektionale Echtzeitkommunikation mit geringer Wartezeit zu ermöglichen.
Was sind WebSockets?
Das WebSocket-Protokoll definiert einen Mechanismus für die schnelle und sichere bidirektionale Kommunikation zwischen einem Client und einem Server über das Web. Daten werden sofort über eine Vollduplex-Ein-Socket-Verbindung übertragen, sodass Nachrichten von beiden Endpunkten in Echtzeit gesendet und empfangen werden können. WebSockets eignen sich ideal für Windows-Runtime-Apps, die Echtzeitspiele, Sofortbenachrichtigungen aus sozialen Netzwerken oder aktuelle Anzeigen von Aktien- oder Wetterdaten beinhalten, sowie für Apps, für die eine sichere und schnelle Datenübertragung erforderlich ist. WebSockets funktionieren auch über Proxys und Firewalls, da das WebSocket-Protokoll standardmäßig die gleichen Ports wie Webbrowser (HTTP und HTTPS) verwendet.
Zum Herstellen einer WebSocket-Verbindung wird zwischen dem Client und dem Server ein spezieller HTTP-basierter Handshake ausgetauscht. Wenn dies erfolgreich war, wird das Anwendungsebenenprotokoll mithilfe der zuvor hergestellten TCP-Verbindung von HTTP auf WebSockets "aktualisiert". Sobald dies erfolgt ist, ist HTTP nicht mehr relevant. Daten können jederzeit mithilfe des WebSocket-Protokolls von beiden Endpunkten gesendet und empfangen werden, bis die WebSocket-Verbindung geschlossen wird.
Wichtig Ein Client kann WebSockets nur zum Übertragen von Daten verwenden, wenn der Server auch das WebSocket-Protokoll verwendet. Wenn der Server WebSockets nicht unterstützt, müssen Sie eine andere Datenübertragungsmethode verwenden.
Der Windows.Networking.Sockets-Namespace bietet Unterstützung für Client-WebSockets in der Windows-Runtime. Unter Windows 8.1 werden für Desktop-Apps sowohl Client- als auch Server-WebSockets unterstützt.
Der Windows.Networking.Sockets-Namespace definiert zwei Typen von WebSocket-Objekten zur Verwendung durch Clients in Windows-Runtime-Apps: MessageWebSocket und StreamWebSocket. In der folgenden Tabelle sind die beiden WebSocket-Typen beschrieben.
MessageWebSocket | StreamWebSocket |
---|---|
Eignet sich für typische Szenarien, in denen Nachrichten nicht besonders groß sind. | Eignet sich für Szenarien, in denen große Dateien (z. B. Fotos oder Filme) übertragen werden. |
Ermöglicht die Benachrichtigung, dass eine gesamte WebSocket-Nachricht erhalten wurde. | Ermöglicht, dass bei jedem Lesevorgang Abschnitte einer Nachricht gelesen werden. |
Unterstützt UTF-8-Nachrichten und binäre Nachrichten. | Unterstützt nur binäre Nachrichten. |
Ist mit einem UDP-Socket (DatagramSocket) vergleichbar. | Ist mit einem TCP-Socket (StreamSocket) vergleichbar. |
Verwenden von WebSockets mit der Netzwerkisolation
Das Netzwerkisolationsfeature in der Windows-Runtime ermöglicht es Entwicklern, den Netzwerkzugriff einer Windows-Runtime-App zu steuern und zu begrenzen. Nicht für jede App muss der Zugriff auf das Netzwerk nötig sein. Ist dies für eine App jedoch erforderlich, bietet die Windows-Runtime verschiedene Ebenen des Netzwerkzugriffs, die durch Auswahl der entsprechenden Funktionen aktiviert werden können.
Mit der Netzwerkisolation kann ein Entwickler für jede App den Umfang des erforderlichen Netzwerkzugriffs definieren. Eine App, für die der geeignete Umfang nicht definiert wurde, wird am Zugriff auf den angegebenen Netzwerktyp und an bestimmten Netzwerkanforderungstypen (ausgehende, vom Client initiierte Anforderungen oder sowohl eingehende, unaufgeforderte Anforderungen als auch ausgehende, vom Client initiierte Anforderungen) gehindert. Durch die Möglichkeit, die Netzwerkisolation festzulegen und zu erzwingen, wird sichergestellt, dass eine App im Falle ihres Missbrauchs nur auf Netzwerke zugreifen kann, für die der App explizit der Zugriff gestattet wurde. Hierdurch wird das Ausmaß der Auswirkungen auf andere Anwendungen und auf Windows erheblich reduziert.
Die Netzwerkisolation wirkt sich auf alle Klassenelemente im Windows.Networking.Sockets-Namespace aus, die versuchen, auf das Netzwerk zuzugreifen. Die Netzwerkisolation wird unter Windows aktiv erzwungen. Ein Aufruf einer Methode der MessageWebSocket- oder StreamWebSocket-Klasse im Windows.Networking.Sockets-Namespace, der zu einem Netzwerkzugriff führt, kann aufgrund der Netzwerkisolation scheitern, falls die entsprechende Netzwerkfunktion nicht aktiviert wurde.
Die Netzwerkfunktionen für eine App werden beim Erstellen der App im App-Manifest konfiguriert. Netzwerkfunktionen werden normalerweise bei der Entwicklung einer App mit Microsoft Visual Studio 2013 Update 2 hinzugefügt. Sie können aber auch manuell mit einem Texteditor in der App-Manifestdatei festgelegt werden.
Ausführlichere Informationen zur Netzwerkisolation finden Sie unter So wird's gemacht: Festlegen von Netzwerkfunktionen.
Entwicklergruppe
In den Beispielen in den folgenden Themen wird JavaScript verwendet. Diese Beispiele basieren auf dem WebSocket-Beispiel. Allgemeine Informationen zum Erstellen einer Windows-Runtime-App mit JavaScript finden Sie unter Roadmap für Windows-Runtime-Apps mit JavaScript.
Inhalt dieses Abschnitts
Thema | Beschreibung |
---|---|
So wird's gemacht: Herstellen einer Verbindung mit einem MessageWebSocket | Beschreibt ausführlich die Anforderungen und speziellen Schritte für die Verwendung eines MessageWebSocket zum Senden und Empfangen von Daten von einem Webserver. |
So wird's gemacht: Herstellen einer Verbindung mit einem StreamWebSocket | Beschreibt ausführlich die Anforderungen und speziellen Schritte für die Verwendung eines StreamWebSocket zum Senden und Empfangen von Daten von einem Webserver. |
Verwenden erweiterter WebSocket-Steuerelemente | Erläutert die Verwendung von erweiterten Socket-Steuerelementen zum Festlegen von Optionen für ein WebSocket-Objekt. |
Sichern von WebSocket-Verbindungen mit TLS/SSL | Erläutert das Sichern von WebSocket-Verbindungen mit TLS (Transport Layer Security)/SSL (Secure Sockets Layer). |
Informieren Sie sich über zugehörige und ähnliche Features.
Abschnitt | Beschreibung |
---|---|
So wird's gemacht: Konfigurieren von Netzwerkisolationsfunktionen | Erläutert das Netzwerkisolationsfeature und das Konfigurieren von Netzwerkisolationsfunktionen zur vollständigen Kontrolle des Netzwerkzugriffs für eine Windows Store-App. |
Herstellen von Netzwerkverbindungen mit Sockets | Beschreibt ausführlich die Anforderungen und speziellen Schritte für die Verwendung eines Sockets zum Senden und Empfangen von Daten von einer Netzwerkressource. |
Hinzufügen der Netzwerkunterstützung | Enthält Informationen zum Hinzufügen der notwendige Netzwerkunterstützung zu einer App. |
Problembehandlung und Debuggen von Netzwerkverbindungen | Enthält Empfehlungen und Informationen zum Beheben von Netzwerkproblemen. |
Verwandte Themen
Weitere Themen
Roadmap für Windows-Runtime-Apps mit JavaScript
Referenz
Beispiele