تنظیم پروکسی کلاینت ASP.NET Core SignalR پیش از راهاندازی
کلاینت ASP.NET Core SignalR را از طریق HttpConnectionOptions پیکربندی کنید تا مذاکره و انتقال انتخابشده مسیر موردنظر را داشته باشند.
پیش از راهاندازی کلاینت 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 در طول چرخه عمر ناهمگام برنامه؛ نشانی hub را بهعنوان مقصد نگه دارید. برای یک آزمون مجاز hub عمومی بدون اعتبارنامه پروکسی پیکربندیشده، فهرست پروکسی HTTP واسطههای HTTP نامزد را فراهم میکند.
| راهاندازی انتقال | پروکسی کجا اعمال میشود |
|---|---|
| رفتار پیشفرض اتصال | HttpConnectionOptions.Proxy واسطه را انتخاب میکند؛ انتقال پیشفرض WebSocket در .NET 8 نیز آن را به ClientWebSocketOptions اختصاص میدهد |
HttpMessageHandlerFactory | پردازش HTTP را سفارشی میکند، نه اتصالهای WebSocket را |
یک WebSocketFactory | تأمینشده رفتار ساخت خود را دارد و باید مسیر لازم را اعمال کند |
مذاکره موفق ثابت نمیکند که تونل WebSocket بعدی پذیرفته شده است. اگر WebSocketFactory سفارشی از .NET ClientWebSocket استفاده کند، پروکسی آن socket را پیش از اتصال پیکربندی کنید. تشخیص انتقال را برای آخرین گام تکمیلشده بخوانید و هر انتقال جایگزین عمدی را نیز بررسی کنید.
نمونههای قدیمی ASP.NET SignalR که Connection.Proxy را تنظیم میکنند به نسل دیگری تعلق دارند. با HubConnectionBuilder پروکسی را کنار سایر WithUrl گزینههای انتقال نگه دارید، نه اینکه یک درخواست HTTP نامرتبط پیکربندی کنید.