Ορίστε το proxy του ClientWebSocket πριν από τη σύνδεση
Διαμορφώστε ένα proxy .NET WebSocket και τα διαπιστευτήριά του πριν από τη σύνδεση, κρατώντας τα χωριστά από τα διαπιστευτήρια του προορισμού.
Διαμορφώστε τις επιλογές του ClientWebSocket πριν καλέσετε το ConnectAsync. Η έναρξη της σύνδεσης πρώτα και η εκχώρηση του proxy μετά είναι πολύ αργά για αυτή τη χειραψία.
using var socket = new ClientWebSocket();
socket.Options.Proxy = new WebProxy("http://203.0.113.10:8080")
{
Credentials = new NetworkCredential(proxyUser, proxyPassword)
};
using var deadline = new CancellationTokenSource(TimeSpan.FromSeconds(20));
await socket.ConnectAsync(new Uri("wss://example.com/socket"),
deadline.Token);
Οι διευθύνσεις και οι μεταβλητές λογαριασμού είναι ενδεικτικές. Οι απαιτούμενοι χώροι ονομάτων περιλαμβάνουν System.Net, System.Net.WebSockets και System.Threading. Χρησιμοποιήστε τον τύπο διαπιστευτηρίων και τον μηχανισμό ελέγχου ταυτότητας που υποστηρίζουν το runtime, η πλατφόρμα και η υπηρεσία proxy στην ανάπτυξή σας.
Τα διαπιστευτήρια του WebProxy ανήκουν στο proxy. Το ClientWebSocketOptions έχει επίσης ξεχωριστή ιδιότητα Credentials για τον έλεγχο ταυτότητας του διακομιστή WebSocket. Η εκχώρηση του ενός δεν ικανοποιεί αυτόματα το άλλο μέρος.
Σε ασφαλή σύνδεση WebSocket, μια απορριφθείσα σήραγγα proxy μπορεί να εμποδίσει την έναρξη της χειραψίας WebSocket του προορισμού. Διαχωρίστε τα στοιχεία σύνδεσης και ελέγχου ταυτότητας του proxy από την απόκριση HTTP upgrade του προορισμού και την επακόλουθη κίνηση WebSocket.
Μια επιτυχημένη σύνδεση είναι μόνο η αρχή της συνεδρίας. Κρατήστε ρητή την ακύρωση λήψης/αποστολής και τον καθαρισμό πόρων για όλη τη διάρκεια ζωής της εφαρμογής· η προθεσμία ρύθμισης σε αυτό το σχέδιο δεν είναι πλήρης πολιτική για κάθε επόμενο μήνυμα.