WebSocket-Protokollkomponenten-API

Zweck

Important

Auswählen einer WebSocket-API für Windows – Es gibt mehrere WebSocket-Optionen. Wählen Sie basierend auf Ihrem Anwendungstyp aus:

API Am besten geeignet für Hinweise
WinHTTP WebSocket (WinHttpWebSocketSend usw.) Dienste, serverseitiger Code, C/C++-Apps, die WebSocket über WinHTTP benötigen Integriert in WinHTTP-Proxy/Authentifizierung; erfordert Windows 8+. Empfohlen für Win32-Dienstszenarien.
Windows. Networking.Sockets (MessageWebSocket, StreamWebSocket) UWP-Apps, moderne C++/WinRT-Desktop-Apps API auf höchster Ebene; behandelt Rahmen und TLS. Apps müssen ihre eigene Logik für die erneute Verbindung implementieren. Empfohlen für neue Desktop-/UWP-Apps.
WebSocket-Protokollkomponente (diese API – websocket.dll) Benutzerdefinierte Transportimplementierungen, die nur Protokoll framing/parsing benötigen Low-Level: behandelt keine E/A, HTTP-Upgrade, Authentifizierung oder Proxy. Sie müssen Ihren eigenen Transport (in der Regel unformatierte Winsock + TLS) bereitstellen.
System.Net. WebSockets (.NET) .NET-Anwendungen Verwaltet, async-first, plattformübergreifend. Wird für Clients verwendet ClientWebSocket .
Bibliotheken von Drittanbietern (libwebsockets, Boost.Beast usw.) Plattformübergreifendes C/C++ Nicht Windows-spezifisch; nützlich, wenn sie auf mehrere Plattformen ausgerichtet sind.

Für die meisten Anwendungen winHTTP WebSocket (Services/Win32) oder Windows. Networking.Sockets (moderne Apps) ist die richtige Wahl. Verwenden Sie die WebSocket-Protokollkomponenten-API auf niedriger Ebene nur, wenn Sie eine benutzerdefinierte Rahmenerstellung für einen Transport benötigen, den Sie vollständig steuern.

Die WebSocket-Protokollkomponenten-API ermöglicht asynchrone, bidirektionale Kommunikationskanäle über HTTP, die über vorhandene Netzwerkintermediäre hinweg funktionieren. Bei der WebSocket-Protokollkomponenten-API verwendet ein Client HTTP für die Kommunikation mit einem Server, und beide Seiten wechseln dann zu dem zugrunde liegenden Protokoll, auf das HTTP überschichtet wurde (z. B. TCP oder SSL). Ziel ist es, zuerst HTTP zum Durchlaufen über Netzwerkintermediäre zu verwenden und dann den etablierten end-to-End-zugrunde liegenden TCP/SSL-Kanal für die bidirektionale Anwendungskommunikation zu verwenden. Das WebSocket-Protokoll [WSPROTO] wird an der IETF definiert, während eine zugeordnete Javascript-API (WebSockets) bei der WHATWG definiert wird.

In diesem Abschnitt

Thema Beschreibung
WebSocket-Protokollkomponenten-API-Datentypen
Die WebSocket-Protokollkomponenten-API definiert diese Datentypen.
WebSocket-Protokollkomponenten-API-Enumerationen
Die WebSocket-Protokollkomponenten-API definiert diese Enumerationen.
WebSocket-Protokollkomponenten-API-Funktionen
Die WebSocket-Protokollkomponenten-API definiert diese Funktionen.
WebSocket-Protokollkomponenten-API-Strukturen
Die WebSocket-Protokollkomponenten-API definiert diese Strukturen.

Entwicklergruppe

Die WebSocket-Protokollkomponenten-API wurde für die Verwendung durch C/C++-Programmierer entwickelt. Kenntnisse über HTTP- und Windows-Netzwerke sind erforderlich.

Anmerkung

Die bevorzugte Methode zum Verwenden des WebSocket-Protokolls unter Windows ist die Windows HTTP Services (WinHTTP)-API oder der Windows.Networking.Sockets-Namespace.

Laufzeitanforderungen

Die WebSocket-Protokollkomponenten-API erfordert Windows 8 und höhere Versionen des Windows-Betriebssystems. Die APIs können dynamisch über websocket.dllverknüpft werden.

Anmerkung

websocket.dll bietet Unterstützung für Client- und Server handshake-bezogene HTTP-Header, überprüft empfangene Handshake-Daten und analysiert den WebSocket-Datenstrom. Sie verarbeitet keine HTTP-spezifischen Vorgänge (Umleitung, Authentifizierung, Proxyunterstützung) oder führt keine E/A-Vorgänge (Senden oder Empfangen von WebSocket-Streambytes) durch.

HTTP-

Windows HTTP-Dienste (WinHTTP)