TsgcWebSocketProxyServer › Eigenschaften › Proxy
Identifiziert das vorgelagerte Ziel — den echten WebSocket-/TCP-Server, an den jeder akzeptierte Client transparent weitergeleitet wird.
property Proxy: TsgcWSProxyServer_Options read FProxy write SetProxy;
Host='127.0.0.1', Port=80, MessageType=mtText, TLS=False
Proxy beschreibt das Upstream-Ziel — den echten WebSocket/TCP-Server, an den diese Komponente den Verkehr weiterleitet. Es handelt sich nicht um eine HTTP-CONNECT-Proxy-Konfiguration; TsgcWebSocketProxyServer selbst ist der Proxy, und jeder akzeptierte Downstream-Client bewirkt, dass eine passende ausgehende Verbindung zu diesem Ziel geöffnet wird. Konfigurieren Sie die Untereigenschaften vor der Aktivierung der Komponente: Host ist der Hostname oder die IP des Upstream-Servers (Standard 127.0.0.1), Port ist der TCP-Port, an dem er lauscht (Standard 80), MessageType wählt aus, ob weitergeleiteter Text als mtText- oder mtBinary-Frames weitergegeben wird, und TLS auf True gesetzt weist den Proxy an, das Upstream-Bein über eine sichere TLS/SSL-Verbindung (wss://) zu öffnen. Der den Clients angebotene Downstream-TLS-Endpunkt wird unabhängig über SSL und SSLOptions konfiguriert, sodass ein einfacher Downstream-Port auf einen sicheren Upstream-Server abgebildet werden kann (oder umgekehrt).
TLSOptions konfiguriert die Upstream-TLS-Verbindung, wenn TLS True ist. Es ist dieselbe Klasse wie TsgcWebSocketClient.TLSOptions: IOHandler wählt iohOpenSSL (Standard), iohSChannel oder iohNativeTLS, und Version, OpenSSL_Options (VersionMin, APIVersion, LibPath), die Zertifikatsdateien, VerifyCertificate, ALPNProtocols, NativeTLS_Options und SChannel_Options werden ebenso angewendet wie beim WebSocket-Client. Mit den Standardoptionen handelt OpenSSL die höchste von der Bibliothek unterstützte Version aus, bis zu TLS 1.3. Setzen Sie TLSOptions.Version oder OpenSSL_Options.VersionMin, um die niedrigste zulässige Version anzuheben. Mit iohNativeTLS benötigt die Upstream-Verbindung keine OpenSSL-Bibliothek, und bei Wiederverbindungen wird die TLS-Sitzung mit einem Session-Ticket wieder aufgenommen.
oProxy := TsgcWebSocketProxyServer.Create(nil);
oProxy.Port := 80;
oProxy.Proxy.Host := 'upstream.example.com';
oProxy.Proxy.Port := 443;
oProxy.Proxy.TLS := true;
oProxy.Proxy.TLSOptions.IOHandler := iohNativeTLS;
oProxy.Proxy.MessageType := mtText;
oProxy.Active := true;