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 von ganzen Nachrichten mithilfe eines 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
| 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 MessageWebSocket-Klasse stellt eine nachrichtenbasierte Abstraktion des WebSocket-Protokolls bereit. Bei Verwendung von MessageWebSocket wird die gesamte WebSocket-Nachricht in einem einzigen Vorgang gelesen oder geschrieben. Im Gegensatz dazu ermöglicht streamWebSocket , dass Abschnitte einer Nachricht mit jedem Lesevorgang gelesen werden können, 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 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 MessageWebSocket 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 MessageWebSocket und verwandte WebSocket-Klassen im 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 |
| 1803 | 17134 | SendFinalFrameAsync |
| 1803 | 17134 | SendNonfinalFrameAsync |
Konstruktoren
| Name | Beschreibung |
|---|---|
| MessageWebSocket() |
Erstellt ein neues MessageWebSocket -Objekt. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Control |
Ruft Socketsteuerelementdaten für ein MessageWebSocket -Objekt ab. |
| Information |
Ruft Socketinformationen für ein MessageWebSocket -Objekt ab. |
| OutputStream |
Ruft den Ausgabedatenstrom ab, der in das Remotenetzwerkziel eines MessageWebSocket -Objekts geschrieben werden soll. |
Methoden
| Name | Beschreibung |
|---|---|
| Close() |
Schließt das MessageWebSocket -Objekt und sendet einen leeren Close Frame an den Server. |
| Close(UInt16, String) |
Schließt das MessageWebSocket -Objekt und gibt einen Grund für das Schließen an. |
| ConnectAsync(Uri) |
Startet einen asynchronen Vorgang zum Herstellen einer Verbindung mit einem Remotenetzwerkziel in einem MessageWebSocket -Objekt. |
| Dispose() |
Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind. |
| SendFinalFrameAsync(IBuffer) |
Schreibt asynchron (mit Fortschritt) einen Datenrahmen in einen sequenziellen Datenstrom mit der Semantik, dass dies 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 Datenstrom, wobei die Semantik, denen weitere Frames für dieselbe WebSocket-Nachricht 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 einen HTTP-Anforderungsheader zur HTTP-Anforderungsnachricht hinzu, die im WebSocket-Protokoll handshake vom MessageWebSocket -Objekt verwendet wird. |
Events
| Name | Beschreibung |
|---|---|
| Closed |
Tritt auf, wenn ein geschlossener Frame im MessageWebSocket -Objekt als Teil des schließende Handshake empfangen wird. |
| MessageReceived |
Ein Ereignis, das angibt, dass eine Nachricht im 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 die benutzerdefinierte Serverüberprüfung für die Verbindung implementieren möchten. |