Πριν εκκινήσετε έναν πελάτη 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 του hub ως προορισμό. Για μια επιτρεπόμενη δοκιμή δημόσιου hub χωρίς διαμορφωμένα διαπιστευτήρια proxy, η λίστα διακομιστών μεσολάβησης HTTP παρέχει υποψήφιους ενδιάμεσους HTTP.

Ρύθμιση μεταφοράςΠού εφαρμόζεται το proxy
Προεπιλεγμένη συμπεριφορά σύνδεσηςHttpConnectionOptions.Proxy επιλέγει τον ενδιάμεσο· η προεπιλεγμένη μεταφορά WebSocket του .NET 8 το αναθέτει επίσης στο ClientWebSocketOptions
HttpMessageHandlerFactoryΠροσαρμόζει τον χειρισμό HTTP, όχι τις συνδέσεις WebSocket
Ένα παρεχόμενο WebSocketFactoryκατέχει τη συμπεριφορά δημιουργίας του και πρέπει να εφαρμόσει την απαιτούμενη διαδρομή

Μια επιτυχής διαπραγμάτευση δεν αποδεικνύει ότι έγινε δεκτό το μεταγενέστερο τούνελ WebSocket. Αν ένα προσαρμοσμένο WebSocketFactory χρησιμοποιεί .NET ClientWebSocket, διαμορφώστε το proxy αυτού του socket πριν τη σύνδεση. Διαβάστε τα διαγνωστικά μεταφοράς για το τελευταίο ολοκληρωμένο βήμα και ελέγξτε επίσης κάθε σκόπιμη εφεδρική μεταφορά.

Παλαιότερα παραδείγματα ASP.NET SignalR που ορίζουν Connection.Proxy ανήκουν σε άλλη γενιά. Με το HubConnectionBuilder, κρατήστε το proxy στις υπόλοιπες WithUrl επιλογές μεταφοράς αντί να διαμορφώνετε ένα άσχετο αίτημα HTTP.

Σχετικά άρθρα