Eto rẹ n tẹsiwaju lati ṣiṣẹ nigba ti ipamo n ku. Wi-Fi tun wa lori, intanẹẹti tun dahun, ati API aladani ti eto naa gbarale ti di eyi ti a ko le de. Iṣẹlẹ .NET ti awọn eniyan maa n lo nibi, NetworkAvailabilityChanged, ko ṣe apejuwe ipo yẹn rara. O n royin iyipada ninu ipo apapọ ti ẹrọ, ati pe ipo yẹn le wa ni otitọ nigba gbigbe VPN kuro ati sisopọ mọ. Oluwo gbọdọ wo alabara ti o ni ipamo, kii ṣe akopọ ti akopọ nẹtiwọọki.

Wiwa ni apapọ kan, kii ṣe ipamo rẹ

NetworkAvailabilityChanged n tan nigba ti idahun wiwa apapọ ti ẹrọ ba yipada, ati pe idahun yẹn ka eyikeyi wiwo ti n ṣiṣẹ yatọ si loopback tabi ipamo kan.

Iyipada VPN nigba ti Wi-Fi wa lori ko yi ohunkohun ti o ṣe iwọn pada, eyi ni idi ti iṣẹlẹ naa le dake ni deede lakoko ikuna ti o kan ọ.

Ṣiṣan ipo jẹ ti alabara ti o ni ipamo

Ṣe idanimọ iru ẹya ti o ni asopọ: GUI tabi iṣẹ OpenVPN, OpenVPN Connect, tabi ilana ti eto rẹ bẹrẹ ti o si n ṣakoso. Awọn wọnyi jẹ awọn oniwun oriṣiriṣi pẹlu awọn wiwo atilẹyin oriṣiriṣi, ati pe oluwo gbọdọ lo eyi ti o ba imuṣiṣẹ mu. Fun ilana OpenVPN ti o ni aṣẹ lati darapọ mọ, wiwo iṣakoso n royin ipo lọwọlọwọ, itan-akọọlẹ ati awọn iwifunni ni akoko gidi. Ṣe itupalẹ awọn ifiranṣẹ ti a ṣeto ti a ṣe akọsilẹ dipo wiwa ọrọ connected ni akọle GUI ti a ti sọ di ibugbe.

Ikanni iṣakoso jẹ oju-iwe iṣakoso ti o ni anfani, nitorina ma ṣe ṣii olutẹtisi tuntun ati ma ṣe ja pẹlu GUI fun ikanni ti o ti ni tẹlẹ.

Awọn olugbeja iran duro awọn abajade ti o ti kọja

Gbogbo akiyesi jẹ ti igbiyanju asopọ kan pato. Mu iṣiro iran pọ si nigba ti igbiyanju tuntun bẹrẹ, nigba ti ikanni sọnu ati nigba ti alabara ba royin ijade.

Ro idanwo kan ti o bẹrẹ lakoko asopọ A. Ipamo ṣubu, asopọ B bẹrẹ, lẹhinna aṣeyọri HTTP ti o pẹ ti A de. Laisi olugbeja, abajade atijọ yẹn yi ifihan pada si alawọ ewe nigba ti B ṣi n jẹri. Fagilee dinku iṣẹ asan, ati ṣayẹwo iran ni ohun ti o da ilowosi ti o ti kọja lati di ipo lọwọlọwọ:

var generation = _generation;
var reachable = await ProbeAsync(token);
if (generation != _generation) return;
Publish(reachable);

Lo ofin kanna ni ayika fifiranṣẹ si UI, nitori imudojuiwọn marshalled le de lẹhin ti iran ti lọ siwaju.

Ibẹrẹ ati atunso jẹ igbesi aye kan

Ka asopọ akọkọ, atunso ati pipadanu ikanni bi igbesi aye kan pẹlu akojọ ofin kan:

  • Ka ipo lọwọlọwọ ki o ṣe alabapin si awọn iwifunni ni igbesẹ kan nibiti wiwo gba laaye.
  • Samisi akiyesi kọọkan pẹlu idanimọ asopọ ati iran.
  • Sọ imurasilẹ di asan ni atunso, ijade, tabi ikanni akiyesi ti o sọnu.
  • Ṣayẹwo orisun aladani nikan lẹhin ti oniwun ba royin pe ibẹrẹ ti pari.
  • Ṣe atẹjade awọn abajade ti o tun jẹ ti iran lọwọlọwọ nikan.

Ikanni ti o sọnu tumọ si aimọ, kii ṣe ti a ge. Jijabọ aimọ jẹ otitọ ju jijabọ pipa ti o ko le fi idi rẹ mulẹ, ati pe o da ọgbọn atunṣe lati ṣiṣẹ lori arosinu.

Jabọ ẹri, kii ṣe boolean

Da ipo igba ti a darukọ ati imurasilẹ orisun pada gẹgẹbi awọn iye lọtọ, ọkọọkan pẹlu ọjọ ori. Olumulo ti o ni lati pinnu nkan le rii pe idanwo aṣeyọri kẹhin jẹ ọmọ ogójì iṣẹju-aaya, eyi ti o yatọ si alaye tuntun.

Wiwa IP gbangba kii ṣe ẹri pe API aladani lo ipa-ọna ti o nilo, nitorina ma ṣe gbe e kalẹ bi ẹni pe o jẹ bẹẹ.

Tọju imuse ni ita oluwo

Callback n ṣiṣẹ lẹhin iṣẹlẹ naa. Ko le ṣe iṣeduro pe ko si packet ti o kuro ninu ẹrọ laarin iṣẹlẹ ati olutọju. Ti apẹrẹ ba nilo idena, eto imulo nẹtiwọọki gbọdọ pese rẹ, ati iṣẹ oluwo ni lati ṣalaye ẹri fun olupe rẹ. Dida mejeji papọ nmu koodu ti o ro pe o jẹ odi ina nitori o ni boolean. Tọju ipele imuse ni alaidun ati idanwo, ki oluwo si wa ni oluka.

Nigbana ni ibeere UI di rọrun: fi ohun ti a mọ han, pẹlu ọjọ ori rẹ, ki o sọ aimọ nigba ti o ba jẹ bẹẹ.

Àwọn àpilẹ̀kọ tó jọra