پیش از راه‌اندازی کلاینت 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 نامرتبط پیکربندی کنید.

مقالات مرتبط