Share via


StreamWebSocket Klasse

Definition

Unterstützt die Netzwerkkommunikation, die das Lesen und Schreiben von Datenströmen mit einem WebSocket ermöglicht.

public ref class StreamWebSocket sealed : IClosable
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class StreamWebSocket final : IClosable
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class StreamWebSocket final : IClosable
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class StreamWebSocket : System.IDisposable
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class StreamWebSocket : System.IDisposable
function StreamWebSocket()
Public NotInheritable Class StreamWebSocket
Implements IDisposable
Vererbung
Object Platform::Object IInspectable StreamWebSocket
Attribute
Implementiert

Windows-Anforderungen

Gerätefamilie
Windows 10 (eingeführt in 10.0.10240.0)
API contract
Windows.Foundation.UniversalApiContract (eingeführt in v1.0)
App-Funktionen
internetClient privateNetworkClientServer

Hinweise

Die StreamWebSocket-Klasse bietet eine streambasierte Abstraktion des nachrichtenbasierten WebSocket-Protokolls. Dies ist nützlich für Szenarien, in denen große Dateien (z. B. Fotos oder Filme) übertragen werden müssen. Mithilfe von StreamWebSocket können Abschnitte einer Nachricht mit jedem Lesevorgang gelesen werden, anstatt dass die gesamte Nachricht in einem einzigen Vorgang gelesen werden muss (wie bei MessageWebSocket).

StreamWebSocket unterstützt nur binäre Nachrichten. Für UTF-8-Nachrichten muss MessageWebSocket verwendet werden.

Behandeln von Ausnahmen

Sie müssen Code schreiben, um Ausnahmen zu behandeln, wenn Sie asynchrone Methoden für die StreamWebSocket-Klasse aufrufen. Ausnahmen können sich auf Fehler bei der Parameterüberprüfung, Fehler bei der Namensauflösung und Netzwerkfehlern ergeben. Ausnahmen von Netzwerkfehlern (z. B. Verbindungsverlust, Verbindungsfehler und HTTP-Serverfehler) können jederzeit auftreten. Diese Fehler haben zur Folge, dass Ausnahmen ausgelöst werden. Wenn sie nicht von Ihrer App verarbeitet wird, kann eine Ausnahme dazu führen, dass Ihre gesamte App von der Runtime beendet wird.

Der Windows.Networking.Sockets-Namespace verfügt über eine praktische Hilfsmethode und Enumeration für die Behandlung von Fehlern bei der Verwendung von WebSockets. Mit ihnen lassen sich spezifische Netzwerkausnahmen in der App unterschiedlich behandeln. Eine App kann auch das HRESULT aus der Ausnahme für Parameterüberprüfungsfehler verwenden, um ausführlichere Informationen zu dem Fehler zu erhalten, der die Ausnahme verursacht hat.

Weitere Informationen zu möglichen Ausnahmen und zum Behandeln von Ausnahmen finden Sie unter Behandeln von Ausnahmen in Netzwerk-Apps.

Verwenden von StreamWebSocket auf Windows Server 2012

Auf Windows Server 2012 und Windows Server 2012 R2 kann die Windows.Networking.dll, die die meisten Klassen im Windows.Networking.Sockets-Namespace implementiert, nicht geladen werden, es sei denn, das Media Foundation-Feature ist aktiviert. Daher schlagen Apps, die StreamWebSocket und zugehörige WebSocket-Klassen im Windows.Networking.Sockets-Namespace verwenden, fehl, wenn das Media Foundation-Feature deaktiviert ist. Windows Server 2012 oder Windows Server 2012 R2-Installationen mit deaktiviertem Media Foundation-Feature.

Das Media Foundation-Feature kann auf Windows Server 2012 oder Windows Server 2012 R2 mithilfe von Server-Manager oder durch Eingabe des folgenden Texts in eine Eingabeaufforderung oder ein Skript aktiviert werden:

dism /online /enable-feature /featurename:ServerMediaFoundation Nachdem das Media Foundation-Feature aktiviert wurde, wird der Benutzer zum Neustart aufgefordert. Nach dem Neustart des Computers funktionieren Klassen für Sockets und WebSockets im Windows.Networking.Sockets-Namespace wie erwartet.

Versionsverlauf

Windows-Version SDK-Version Wertschöpfung
1607 14393 ServerCustomValidationRequested

Konstruktoren

StreamWebSocket()

Erstellt ein neues StreamWebSocket-Objekt .

Eigenschaften

Control

Ruft Socketsteuerungsdaten für ein StreamWebSocket-Objekt ab.

Information

Ruft Socketinformationen für ein StreamWebSocket-Objekt ab.

InputStream

Ruft den Eingabedatenstrom ab, der vom Remoteziel in einem StreamWebSocket-Objekt gelesen werden soll.

OutputStream

Ruft den Ausgabestream ab, der in das Remotenetzwerkziel eines StreamWebSocket-Objekts geschrieben werden soll.

Methoden

Close()

Schließt das StreamWebSocket und sendet einen leeren schließenden Frame an den Server.

Close(UInt16, String)

Schließt das StreamWebSocket und gibt einen Grund für die Schließung an.

ConnectAsync(Uri)

Startet einen asynchronen Vorgang zum Herstellen einer Verbindung mit einem Remotenetzwerkziel in einem StreamWebSocket-Objekt .

Dispose()

Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen.

SetRequestHeader(String, String)

Fügt einen HTTP-Anforderungsheader zur HTTP-Anforderungsnachricht hinzu, die im Handshake des WebSocket-Protokolls vom StreamWebSocket-Objekt verwendet wird.

Ereignisse

Closed

Tritt auf, wenn ein geschlossener Frame für das StreamWebSocket-Objekt als Teil des close-Handshakes empfangen wird.

ServerCustomValidationRequested

Tritt auf, wenn eine neue StreamWebSocket-Verbindung mit einem gesicherten Server-URI (wss: Protocol) überprüft wird. Behandeln Sie dieses Ereignis, wenn Sie eine benutzerdefinierte Serverüberprüfung für die Verbindung implementieren möchten.

Gilt für:

Weitere Informationen