TsgcWebSocketProxyServer › Properties › Proxy
업스트림 대상, 즉 수락된 모든 클라이언트가 투명하게 전달되는 실제 WebSocket/TCP 서버를 식별합니다.
property Proxy: TsgcWSProxyServer_Options read FProxy write SetProxy;
Host='127.0.0.1', Port=80, MessageType=mtText, TLS=False
Proxy는 업스트림 대상(이 구성 요소가 트래픽을 전달하는 실제 WebSocket/TCP 서버)을 설명합니다. 이는 HTTP CONNECT 프록시 구성이 아닙니다. TsgcWebSocketProxyServer 자체가 프록시이며, 수락된 모든 다운스트림 클라이언트는 이 대상으로 일치하는 아웃바운드 연결이 열리게 합니다. 구성 요소를 활성화하기 전에 하위 속성을 구성하십시오: Host는 업스트림 서버의 호스트 이름 또는 IP(기본값 127.0.0.1)이고, Port는 수신하는 TCP 포트(기본값 80)이며, MessageType은 전달된 텍스트가 mtText 또는 mtBinary 프레임으로 중계될지 선택하고, TLS를 True로 설정하면 프록시가 보안 TLS/SSL 연결(wss://)을 통해 업스트림 구간을 열도록 지시합니다. 클라이언트에게 노출되는 다운스트림 TLS 엔드포인트는 SSL 및 SSLOptions를 통해 독립적으로 구성되므로, 일반 다운스트림 포트를 보안 업스트림 서버에 매핑할 수 있습니다(또는 그 반대).
TLS가 True일 때 TLSOptions는 업스트림 TLS 연결을 구성합니다. TsgcWebSocketClient.TLSOptions와 같은 클래스입니다. IOHandler는 iohOpenSSL(기본값), iohSChannel, iohNativeTLS 중에서 선택하며, Version, OpenSSL_Options(VersionMin, APIVersion, LibPath), 인증서 파일, VerifyCertificate, ALPNProtocols, NativeTLS_Options, SChannel_Options는 WebSocket 클라이언트가 적용하는 방식 그대로 적용됩니다. 기본 옵션에서는 OpenSSL이 라이브러리가 지원하는 가장 높은 버전(최대 TLS 1.3)을 협상합니다. 가장 낮은 버전을 올리려면 TLSOptions.Version이나 OpenSSL_Options.VersionMin을 설정하십시오. iohNativeTLS를 사용하면 업스트림 연결에 OpenSSL 라이브러리가 필요하지 않으며, 재연결은 세션 티켓으로 TLS 세션을 재개합니다.
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;