Σε μια ασύγχρονη συνάρτηση της κύριας διεργασίας με υπάρχον παράθυρο, ρώτησε τη συνεδρία που χρησιμοποιεί πραγματικά το παράθυρο:

const selectedSession = mainWindow.webContents.session;
const route = await selectedSession.resolveProxy('https://api.example/');

Το τρέχον API επιστρέφει ένα Promise που επιλύεται σε αλφαριθμητικό. Περίμενε μια εκκρεμή λειτουργία setProxy πριν ελέγξεις μια αλλαγή διαμόρφωσης.

Το αποτέλεσμα είναι μια απόφαση διαμεσολαβητή (proxy) ειδική για το URL. Μια υποθετική τιμή θα μπορούσε να είναι:

PROXY proxy-a.example:8080; PROXY proxy-b.example:8080; DIRECT

Αυτή είναι μια διατεταγμένη λίστα υποψηφίων σε σύνταξη στυλ PAC, όχι ένα μόνο όνομα κεντρικού υπολογιστή. Το DIRECT αντιπροσωπεύει ρητά έναν άμεσο υποψήφιο. Χειρίσου το κενό αποτέλεσμα ξεχωριστά· μην αντιμετωπίζεις σιωπηρά κάθε κενό ή μη αναγνωρισμένο αλφαριθμητικό ως DIRECT.

Ρώτησε το πραγματικό URL προορισμού, επειδή οι αποφάσεις PAC και παράκαμψης μπορεί να διαφέρουν ανά προορισμό. Ομοίως, ένα παράθυρο που χρησιμοποιεί διαμερισμένη συνεδρία μπορεί να μην έχει την ίδια πολιτική με το session.defaultSession.

Η επίλυση proxy μπορεί να περιλαμβάνει εργασία αυτόματης διαμόρφωσης, όπως η λήψη ενός σεναρίου PAC. Η επιστρεφόμενη επιλογή εξακολουθεί να μην είναι ολοκληρωμένο αίτημα προς τον ιστότοπο προορισμού, ούτε επιτυχής σύνδεση proxy ούτε απόδειξη της δημόσιας διεύθυνσης IP εξόδου του. Διατήρησε τη συνεδρία, το URL και τους υποψηφίους που επιλύθηκαν όταν τα συγκρίνεις με το αποτέλεσμα του επόμενου αιτήματος.

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