В асинхронна функция на главния процес със съществуващ прозорец заявете сесията, която прозорецът действително използва:

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 и разрешените кандидати, когато ги сравнявате с резултата от следващата заявка.

Подобни статии