Какво връща resolveProxy в Electron
Изчакайте решението за конкретния URL от действителната сесия на прозореца и разграничете върнатия низ в стил PAC от завършена връзка.
В асинхронна функция на главния процес със съществуващ прозорец заявете сесията, която прозорецът действително използва:
const selectedSession = mainWindow.webContents.session;
const route = await selectedSession.resolveProxy('https://api.example/');
Текущият API връща Promise, който се разрешава до низ. Изчакайте чакаща операция setProxy, преди да проверявате промяна в конфигурацията.
Резултатът е решение за прокси, специфично за URL. Хипотетична стойност може да бъде:
PROXY proxy-a.example:8080; PROXY proxy-b.example:8080; DIRECT
Това е подреден списък с кандидати в синтаксис от стил PAC, а не едно име на хост. DIRECT изрично представлява директен кандидат. Обработвайте празния резултат отделно; не приемайте мълчаливо всеки празен или неразпознат низ за DIRECT.
Заявявайте действителния целеви URL, защото решенията за PAC и обход може да се различават според дестинацията. По същия начин прозорец с разделена сесия може да няма същата политика като session.defaultSession.
Разрешаването на прокси може да включва работа по автоматична конфигурация, например получаване на PAC скрипт. Върнатият избор все още не е завършена заявка към целевия сайт, успешен вход в прокси или доказателство за неговия публичен изходен IP. Запазете сесията, URL и разрешените кандидати, когато ги сравнявате с резултата от следващата заявка.