So wird’s gemacht: Verwenden erweiterter WebSocket-Steuerelemente (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]
In diesem Thema erfahren Sie, wie Sie bei Verwendung der Features MessageWebSocket und StreamWebSocket in einer Windows-Runtime-App erweiterte Socketsteuerelemente verwenden können.
Wissenswertes
Technologien
-
Ermöglicht die Netzwerkkommunikation mit Sockets und WebSockets.
Voraussetzungen
- Die Beispiele in diesem Thema sind in JavaScript verfasst. Grundkenntnisse im Bereich WebSockets werden empfohlen.
Übersicht über erweiterte WebSocket-Steuerelemente
Die Klassen MessageWebSocket und StreamWebSocket folgen dem gleichen Modell für die Verwendung erweiterter Steuerelemente. Den zuvor genannten Hauptklassen entsprechen verwandte Klassen für den Zugriff auf erweiterte Steuerelemente:
- MessageWebSocketControl – Ermöglicht die Socketsteuerung der Dienstqualität für ein MessageWebSocket-Objekt.
- StreamWebSocketControl – Stellt Socketsteuerungsdaten für ein StreamWebSocket-Objekt bereit.
Das Grundmodell für die Verwendung erweiterter Steuerelemente ist für beide WebSocket-Typen gleich. In der folgenden Erläuterung wird exemplarisch StreamWebSocket verwendet, der gleiche Prozess kann jedoch auch mit MessageWebSocket ausgeführt werden.
- Erstellen Sie einen StreamWebSocket.
- Verwenden Sie die StreamWebSocket.Control-Eigenschaft, um die einem StreamWebSocket-Objekt zugeordnete StreamWebSocketControl-Instanz abzurufen.
- Legen Sie zum Festlegen einer erweiterten Socketoption eine Eigenschaft für StreamWebSocketControl fest.
Die App muss vor dem Ausgeben eines Verbindungsvorgangs immer eine Eigenschaft für StreamWebSocketControl festlegen. Daher empfiehlt es sich, erweiterte Optionen direkt nach der Socketerstellung festzulegen. Versuchen Sie nicht, eine StreamWebSocketControl-Eigenschaft festzulegen, nachdem ein Socket die ConnectAsync-Methode aufgerufen hat.
Erweiterte StreamWebSocket-Steuerelemente
Für StreamWebSocket stehen mehrere erweiterte Optionen zur Verfügung:
- StreamWebSocketControl.NoDelay – Gibt an, ob für ein StreamWebSocket-Objekt der Nagle-Algorithmus verwendet wird.
- StreamWebSocketControl.OutboundBufferSizeInBytes - Steuert die Größe des Sendepuffers in Bytes, der zum Senden von Daten für ein StreamWebSocket-Objekt verwendet wird.
- StreamWebSocketControl.ProxyCredential – Stellt die Anmeldeinformationen für die HTTP-Headerauthentifizierung beim Proxyserver mithilfe eines StreamWebSocket-Objekts bereit.
- StreamWebSocketControl.ServerCredential – Stellt die Anmeldeinformationen für die HTTP-Headerauthentifizierung beim WebSocket-Server mithilfe eines StreamWebSocket-Objekts bereit.
- StreamWebSocketControl.SupportedProtocols – Ruft eine Auflistung ab, mit der eine Liste unterstützter Unterprotokolle hinzugefügt werden kann, die dem Server während des Verbindungshandshakes angekündigt werden.
Als Beispiel befassen wir uns etwas näher mit der StreamWebSocketControl.NoDelay-Option. Standardmäßig wird diese Option bei der Erstellung eines StreamWebSocket-Objekts auf true festgelegt, wodurch der Nagle-Algorithmus deaktiviert wird. Falls StreamWebSocket allerdings für eine App verwendet wird, die viele kleine Pakete sendet, und die Latenz keine Rolle spielt, kann zum Verringern des Netzwerkverkehrs der Nagle-Algorithmus aktiviert werden, indem Sie StreamWebSocketControl.NoDelay auf false festlegen.
Das folgende Beispiel erstellt ein StreamWebSocket-Objekt und legt StreamWebSocketControl.NoDelay auf false fest. Anschließend kann die App StreamWebSocket-Objekt verbinden.
var clientWebSocket = new Windows.Networking.Sockets.StreamWebSocket();
// Get the current setting for this option
// This isn't required, but it shows how to get the current setting
var currentSetting = clientWebSocket.control.noDelay;
// Set noDelay to false so that the Nagle algorithm isn't disabled
clientWebSocket.control.noDelay = false;
// Now you can call the ConnectAsync method to connect the StreamWebSocket.
Erweiterte MessageWebSocket-Steuerelemente
Viele der erweiterten Optionen für MessageWebSocket entsprechen zwar den Optionen für StreamWebSocket, es gibt aber auch Unterschiede.
- MessageWebSocketControl.MaxMessageSize – Steuert die maximal zulässige Größe (in Bytes) für eine WebSocket-Meldung, die für das MessageWebSocket-Objekt konfiguriert wird.
- MessageWebSocketControl.MessageType – Steuert die Art der WebSocket-Meldung (binär oder UTF-8), die für ein MessageWebSocket-Objekt konfiguriert wird.
- MessageWebSocketControl.OutboundBufferSizeInBytes - Steuert die Größe des Sendepuffers in Bytes, der zum Senden von Daten für ein MessageWebSocket-Objekt verwendet wird.
- MessageWebSocketControl.ProxyCredential – Stellt die Anmeldeinformationen für die HTTP-Headerauthentifizierung beim Proxyserver mithilfe eines MessageWebSocket-Objekts bereit.
- MessageWebSocketControl.ServerCredential – Stellt die Anmeldeinformationen für die HTTP-Headerauthentifizierung beim WebSocket-Server mithilfe eines MessageWebSocket-Objekts bereit.
- MessageWebSocketControl.SupportedProtocols – Ruft eine Auflistung ab, mit der eine Liste unterstützter Unterprotokolle hinzugefügt werden kann, die dem Server während des Verbindungshandshakes angekündigt werden.
Die Optionen für einen MessageWebSocket werden größtenteils auf die gleiche Weise festgelegt wie im Beispiel oben beschrieben.
Anmerkungen
Darüber hinaus bietet eine ähnliche Gruppe von verwandten Klassen Zugriff auf weitere Informationen für diese Hauptklassen:
- MessageWebSocketInformation – Stellt Socketinformationen für ein MessageWebSocket-Objekt bereit.
- StreamWebSocketInformation – Stellt Socketinformationen für ein StreamWebSocket-Objekt bereit.
Diese Klassen besitzen Eigenschaften, die zusätzliche Informationen zum Socket bereitstellen.
Verwandte Themen
Sonstiges
So wird's gemacht: Herstellen einer Verbindung mit einem MessageWebSocket
So wird's gemacht: Herstellen einer Verbindung mit einem StreamWebSocket
So wird's gemacht: Schützen von WebSocket-Verbindungen mit TLS/SSL
Referenz
Beispiele