TsgcWebSocketProxyServer › Properties › Proxy
Identificeert het upstream-doel — de echte WebSocket/TCP-server waarnaar elke geaccepteerde client transparant wordt doorgestuurd.
property Proxy: TsgcWSProxyServer_Options read FProxy write SetProxy;
Host='127.0.0.1', Port=80, MessageType=mtText, TLS=False
Proxy beschrijft het upstream-doel — de echte WebSocket/TCP-server waarnaar deze component verkeer doorstuurt. Het is geen HTTP CONNECT-proxyconfiguratie; TsgcWebSocketProxyServer zelf is de proxy, en elke geaccepteerde downstream-client zorgt voor een overeenkomende uitgaande verbinding naar dit doel. Configureer de sub-eigenschappen vóór activering van de component: Host is de hostnaam of het IP van de upstream-server (standaard 127.0.0.1), Port is de TCP-poort waarop deze luistert (standaard 80), MessageType selecteert of doorgestuurde tekst wordt doorgegeven als mtText- of mtBinary-frames, en TLS ingesteld op True vertelt de proxy de upstream-verbinding te openen via een beveiligde TLS/SSL-verbinding (wss://). Het downstream-TLS-eindpunt dat aan clients wordt blootgesteld, wordt afzonderlijk geconfigureerd via SSL en SSLOptions, zodat een eenvoudige downstream-poort kan worden gekoppeld aan een beveiligde upstream-server (of omgekeerd).
TLSOptions configureert de upstream-TLS-verbinding wanneer TLS True is. Het is dezelfde klasse als TsgcWebSocketClient.TLSOptions: IOHandler selecteert iohOpenSSL (de standaardwaarde), iohSChannel of iohNativeTLS, en Version, OpenSSL_Options (VersionMin, APIVersion, LibPath), de certificaatbestanden, VerifyCertificate, ALPNProtocols, NativeTLS_Options en SChannel_Options worden toegepast zoals de WebSocket-client ze toepast. Met de standaardopties onderhandelt OpenSSL de hoogste versie die de bibliotheek ondersteunt, tot TLS 1.3. Stel TLSOptions.Version of OpenSSL_Options.VersionMin in om de laagste versie te verhogen. Met iohNativeTLS heeft de upstream-verbinding geen OpenSSL-bibliotheek nodig en hervatten herverbindingen de TLS-sessie met een sessieticket.
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;