スタートアップ前に ASP.NET Core SignalR クライアントのプロキシを設定する
HttpConnectionOptions を使って ASP.NET Core SignalR クライアントを構成し、ネゴシエーションと選択されたトランスポートが意図した経路を通るようにします。
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 に割り当てます |
HttpMessageHandlerFactory | HTTP 処理をカスタマイズするもので、WebSocket 接続には適用されません |
供給された WebSocketFactory | は独自の作成動作を持ち、必要な経路を適用しなければなりません |
ネゴシエーションの成功は、後続の WebSocket トンネルが受け入れられたことを証明しません。カスタム WebSocketFactory が .NET ClientWebSocket を使用する場合は、 接続する前にそのソケットのプロキシを構成してください. 最後に完了した手順のトランスポート診断を読み、意図的なフォールバック トランスポートも確認してください。
古い ASP.NET SignalR の例が設定する Connection.Proxy は別世代のものです。HubConnectionBuilder では、プロキシを他の WithUrl トランスポート オプションとともに保持し、無関係な HTTP 要求を構成しないでください。