Sprache

StreamWebSocket Klasse

Definition

Unterstützt die Netzwerkkommunikation, die das Lesen und Schreiben von Datenströmen mithilfe eines 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

Anforderungen Beschreibung
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 stellt eine streambasierte Abstraktion des nachrichtenbasierten WebSocket-Protokolls bereit. 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 einzelnen 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 aus Parameterüberprüfungsfehlern, Namensauflösungsfehlern und Netzwerkfehlern resultieren. Ausnahmen von Netzwerkfehlern (z. B. Verbindungsverlust, Verbindungsfehler und HTTP-Serverfehler) können jederzeit auftreten. Diese Fehler führen dazu, dass Ausnahmen ausgelöst werden. Wenn die App nicht behandelt wird, kann eine Ausnahme dazu führen, dass die gesamte App von der Laufzeit beendet wird.

Die Windows. Der Namespace Networking.Sockets verfügt über eine bequeme Hilfsmethode und -enumeration zum Behandeln von Fehlern bei der Verwendung von WebSockets. Dies kann nützlich sein, um bestimmte Netzwerk exceptions in Ihrer App anders zu behandeln. Eine App kann auch das HRESULT aus der Ausnahme bei Parameterüberprüfungsfehlern verwenden, um ausführlichere Informationen zum Fehler zu erhalten, der die Ausnahme verursacht hat.

Weitere Informationen zu möglichen Ausnahmen und zur Behandlung 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 wird der Windows.Networking.dll, der die meisten Klassen in der Windows implementiert. Der Namespace "Networking.Sockets" kann nicht geladen werden, es sei denn, das Media Foundation-Feature ist aktiviert. Daher verwenden Apps, die StreamWebSocket und verwandte WebSocket-Klassen in der Windows verwenden. Der Namespace Networking.Sockets schlägt fehl, wenn das Media Foundation-Feature deaktiviert ist. Windows Server 2012- oder Windows Server 2012 R2-Installationen mit deaktivierter Media Foundation-Funktion.

Das Media Foundation-Feature kann auf Windows Server 2012 oder Windows Server 2012 R2 mithilfe von Server-Manager oder durch Eingeben 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. Nachdem der Computer neu gestartet wurde, werden Klassen für Sockets und WebSockets im Windows. Networking.Sockets-Namespace funktioniert wie erwartet.

Versionsverlauf

Windows-Version SDK-Version Mehrwert
1607 14393 ServerCustomValidationRequested

Konstruktoren

Name Beschreibung
StreamWebSocket()

Erstellt ein neues StreamWebSocket -Objekt.

Eigenschaften

Name Beschreibung
Control

Ruft Socketsteuerelementdaten für ein StreamWebSocket -Objekt ab.

Information

Ruft Socketinformationen für ein StreamWebSocket -Objekt ab.

InputStream

Ruft den Eingabedatenstrom ab, der vom Remoteziel eines StreamWebSocket -Objekts gelesen werden soll.

OutputStream

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

Methoden

Name Beschreibung
Close()

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

Close(UInt16, String)

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

ConnectAsync(Uri)

Startet einen asynchronen Vorgang, um eine Verbindung mit einem Remotenetzwerkziel in einem StreamWebSocket -Objekt herzustellen.

Dispose()

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

SetRequestHeader(String, String)

Fügt der HTTP-Anforderungsnachricht einen HTTP-Anforderungsheader hinzu, der im WebSocket-Protokoll handshake vom StreamWebSocket -Objekt verwendet wird.

Events

Name Beschreibung
Closed

Tritt auf, wenn ein close frame im StreamWebSocket -Objekt als Teil des schließende Handshake 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 die benutzerdefinierte Serverüberprüfung für die Verbindung implementieren möchten.

Gilt für:

Siehe auch