ASP.NET Core SignalR 클라이언트를 시작하기 전에 연결 옵션을 구성합니다.

var connection = new HubConnectionBuilder()
    .WithUrl("https://events.example/hub", options =>
    {
        options.Proxy = new WebProxy("http://proxy.example:8080");
    })
    .Build();

이 조각은 최신 SignalR 클라이언트와 System.Net을 사용합니다. connection 애플리케이션의 비동기 수명 주기 동안 관리하고 허브 URL은 대상으로 유지합니다. 프록시 자격 증명을 구성하지 않은 허용된 공용 허브 테스트에는 HTTP 프록시 목록 이 후보 HTTP 중개자를 제공합니다.

전송 설정프록시가 적용되는 위치
기본 연결 동작HttpConnectionOptions.Proxy 은 중개자를 선택하며, .NET 8의 기본 WebSocket 전송도 이를 ClientWebSocketOptions에 할당합니다
HttpMessageHandlerFactoryHTTP 처리를 사용자 지정하며 WebSocket 연결에는 적용되지 않습니다
제공된 WebSocketFactory은 자체 생성 동작을 가지며 필요한 경로를 적용해야 합니다

협상이 성공해도 이후 WebSocket 터널이 수락되었음을 증명하지는 않습니다. 사용자 지정 WebSocketFactory가 .NET ClientWebSocket을 사용한다면 연결하기 전에 해당 소켓의 프록시를 구성하십시오. 마지막으로 완료된 단계의 전송 진단을 읽고 의도적인 대체 전송도 검사하십시오.

이전 ASP.NET SignalR 예제에서 Connection.Proxy 설정하는 것은 다른 세대에 속합니다. HubConnectionBuilder에서는 프록시를 다른 WithUrl 전송 옵션과 함께 두고 관련 없는 HTTP 요청을 구성하지 마십시오.

관련 글