MessageWebSocket Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Unterstützt die Netzwerkkommunikation, die das Lesen und Schreiben ganzer Nachrichten mit einem WebSocket ermöglicht.
public ref class MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket 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 MessageWebSocket : 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 MessageWebSocket : System.IDisposable
function MessageWebSocket()
Public NotInheritable Class MessageWebSocket
Implements IDisposable
- Vererbung
- 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 MessageWebSocket-Klasse bietet eine nachrichtenbasierte Abstraktion des WebSocket-Protokolls. Bei Verwendung von MessageWebSocket wird die gesamte WebSocket-Nachricht in einem einzigen Vorgang gelesen oder geschrieben. Im Gegensatz dazu ermöglicht streamWebSocket das Lesen von Abschnitten einer Nachricht mit jedem Lesevorgang, anstatt dass die gesamte Nachricht in einem einzigen Vorgang gelesen werden muss.
Für UTF-8-Nachrichten muss MessageWebSocket verwendet werden. StreamWebSocket unterstützt nur binäre Nachrichten.
Behandeln von Ausnahmen
Sie müssen Code schreiben, um Ausnahmen zu behandeln, wenn Sie asynchrone Methoden für die MessageWebSocket-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 MessageWebSocket unter Windows Server 2012
Unter 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 MessageWebSocket 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 wird installiert, wobei das Media Foundation-Feature deaktiviert ist.
Das Media Foundation-Feature kann unter 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 |
1803 | 17134 | SendFinalFrameAsync |
1803 | 17134 | SendNonfinalFrameAsync |
Konstruktoren
MessageWebSocket() |
Erstellt ein neues MessageWebSocket-Objekt . |
Eigenschaften
Control |
Ruft Socketsteuerelementdaten für ein MessageWebSocket-Objekt ab. |
Information |
Ruft Socketinformationen zu einem MessageWebSocket-Objekt ab. |
OutputStream |
Ruft den Ausgabedatenstrom ab, der in das Remotenetzwerkziel eines MessageWebSocket-Objekts geschrieben werden soll. |
Methoden
Close() |
Schließt das MessageWebSocket-Objekt und sendet einen leeren schließenden Frame an den Server. |
Close(UInt16, String) |
Schließt das MessageWebSocket-Objekt und gibt einen Grund für die Schließung an. |
ConnectAsync(Uri) |
Startet einen asynchronen Vorgang, um eine Verbindung mit einem Remotenetzwerkziel auf einem MessageWebSocket-Objekt herzustellen. |
Dispose() |
Führt anwendungsspezifische Aufgaben durch, die mit der Freigabe, der Zurückgabe oder dem Zurücksetzen von nicht verwalteten Ressourcen zusammenhängen. |
SendFinalFrameAsync(IBuffer) |
Schreibt asynchron (mit Fortschritt) einen Datenrahmen in einen sequenziellen Stream, wobei die Semantik der letzte Frame in einer WebSocket-Nachricht ist (das FIN-Bit für diesen Frame ist auf 1 festgelegt). Mit dieser Methode und SendNonfinalFrameAsync können Sie einzelne WebSocket-Frames senden. |
SendNonfinalFrameAsync(IBuffer) |
Schreibt asynchron (mit Fortschritt) einen Datenrahmen in einen sequenziellen Stream mit der Semantik, der für dieselbe WebSocket-Nachricht weitere Frames folgen (das FIN-Bit für diesen Frame ist auf 0 festgelegt). Mit dieser Methode und SendFinalFrameAsync können Sie einzelne WebSocket-Frames senden. |
SetRequestHeader(String, String) |
Fügt der HTTP-Anforderungsnachricht, die im Handshake des WebSocket-Protokolls vom MessageWebSocket-Objekt verwendet wird, einen HTTP-Anforderungsheader hinzu. |
Ereignisse
Closed |
Tritt auf, wenn ein geschlossener Frame für das MessageWebSocket-Objekt als Teil des close-Handshakes empfangen wird. |
MessageReceived |
Ein Ereignis, das angibt, dass eine Nachricht für das MessageWebSocket-Objekt empfangen wurde. |
ServerCustomValidationRequested |
Tritt auf, wenn eine neue MessageWebSocket-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. |