Trước khi khởi động máy khách ASP.NET Core SignalR, hãy cấu hình các tùy chọn kết nối của nó:

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

Đoạn này dùng máy khách SignalR hiện đại và System.Net. Quản lý connection trong suốt vòng đời async của ứng dụng; giữ URL hub làm điểm đến. Với một bài kiểm tra hub công khai được phép mà không cấu hình thông tin đăng nhập proxy, danh sách proxy HTTP cung cấp các trung gian HTTP tiềm năng.

Thiết lập transportNơi proxy được áp dụng
Hành vi kết nối mặc địnhHttpConnectionOptions.Proxy chọn trung gian; transport WebSocket mặc định của .NET 8 cũng gán nó cho ClientWebSocketOptions
HttpMessageHandlerFactoryTùy chỉnh xử lý HTTP, không phải kết nối WebSocket
Một WebSocketFactoryđược cung cấp có hành vi tạo riêng và phải áp dụng tuyến cần thiết

Thương lượng thành công không chứng minh rằng đường hầm WebSocket sau đó đã được chấp nhận. Nếu WebSocketFactory tùy chỉnh dùng .NET ClientWebSocket, hãy cấu hình proxy của socket đó trước khi kết nối. Đọc chẩn đoán transport cho bước hoàn tất cuối cùng và cũng kiểm tra mọi transport dự phòng có chủ đích.

Các ví dụ ASP.NET SignalR cũ hơn đặt Connection.Proxy thuộc thế hệ khác. Với HubConnectionBuilder, giữ proxy cùng các tùy chọn WithUrl transport khác thay vì cấu hình một yêu cầu HTTP không liên quan.

Bài viết liên quan