As Jint in ûntbrekkende dnsResolve of myIpAddress rapportearret by it evaluearjen fan PAC, is mear JavaScript lade net perfoarst de oplossing. Dy PAC-helpers hearre by de omjouwing dy't de hostapplikaasje leveret.

Foardat FindProxyForURL oanroppen wurdt

Kies de stipe PAC-helpersset en adresfamyljes, en ynstallearje dy helpers dan op de motor. Behâld har kontrakten: dnsResolve nimt in hostnamme, myIpAddress nimt gjin arguminten en hat in belied foar lokale ynterface nedich, en shExpMatch brûkt shell-styl patroanen. In stub dy't in handich wearde werombringt, kin stil de ferkearde rûte kieze.

Mei dy initialisaasje dien, kin de kearnoanrop der yn Jint 4.4.0 sa útsjen:

var destination = new Uri(destinationUrl);
engine.Execute(pacSource);
var routeList = engine.Invoke(
    "FindProxyForURL",
    destinationUrl,
    destination.IdnHost
).AsString();

engine is de konfigurearre Jint.Engine; pacSource is it ophelle PAC-programma. destination.IdnHost jout de hostnamme sûnder poarte of paad. Dit oanrop hellet gjin PAC op en iepenet gjin proxyferbining.

Nei it oanrop

Ynterpretearje in resultaat lykas PROXY proxy.example:8080; DIRECT as in oardere list fan rûtekandidaten en fallback. It hiele snipper as proxy-URL trochjaan ferliest syn betsjutting. Hâld in evaluaasjeflater apart fan in eksplisyt DIRECT-resultaat.

Wylst it rint

Konfigurearje Jint syn beheiningen foar doer, statements, ûnthâld en annulearring, en eksposearje allinnich de fereaske hostfunksjes. Beheine DNS-callbacks apart: kontrôles op JavaScript-útfiering meitsje in willekeurich blokkearjend hostoanrop net ûnderbrekber. Serialisearje tagong ta in motor of jou parallelism eigen besit fan aparte eksimplaren; motors binne net feilich foar tagelyk gebrûk.

PAC-ymplemintaasjes yn browsers kinne ferskille yn helperútwreidings en de URL-details dy't se eksposearje, benammen foar HTTPS. Ien foarbyldresultaat metsje bewissiget minder as it routinggedrach fan de browser metsje.

Relatearre artikelen