Mai lura da yanayin OpenVPN a C#: duba zaman, ba katin cibiyar sadarwa ba
NetworkAvailabilityChanged ba taron VPN ba ne. Karanta rafin yanayi daga abokin ciniki mai zaman, kare kanka daga binciken da ya tsufa, kuma wallafa shiri ga kowace haɗi.
Aikace-aikacenka yana ci gaba da aiki yayin da ramin yana mutuwa. Wi-Fi yana nan a kunne, intanet tana amsawa, kuma sirriyar API da aikace-aikacen ya dogara da ita ta zama marar isa. Taron .NET da mutane sukan kama a nan, NetworkAvailabilityChanged, ba ya kwatanta wannan yanayin kwata-kwata. Yana ba da rahoton canji a yanayin gama-gari na na'urar, kuma wannan yanayin na iya kasancewa gaskiya a duk lokacin da aka yanke VPN sannan aka sake haɗawa. Mai lura dole ya duba abokin cinikin da ya mallaki ramin, ba taƙaitaccen bayanin da tariyar cibiyar sadarwa ke bayarwa ba.
Samuwa ita ce gama-gari, ba raminka ba
NetworkAvailabilityChanged yana tashi ne lokacin da amsar samuwa ta gama-gari ta na'urar ta canza, kuma wannan amsar tana ƙidaya kowace fuska mai aiki banda loopback ko rami.
Faɗuwar VPN yayin da Wi-Fi yake aiki ba ya canza komai daga abin da take aunawa, shi ya sa taron zai iya yin shiru a daidai lokacin gazawar da ka damu da ita.
Rafin yanayi na abokin cinikin da ya mallaki ramin ne
Gano wace ɓangare ce ta mallaki haɗin: GUI ko sabis ɗin OpenVPN, OpenVPN Connect, ko tsari da aikace-aikacenka ya fara kuma yake sarrafawa. Waɗannan mallaka ne daban-daban da fuska daban-daban da ake tallafawa, kuma mai lura dole ya yi amfani da wadda ta dace da turawa. Ga tsarin OpenVPN da ka sami izinin haɗawa da shi, fuskar gudanarwa tana ba da rahoton halin yanzu, tarihi da sanarwa na lokaci-lokaci. Yi nazarin saƙonnin tsari da aka rubuta maimakon neman kalmar connected a cikin taken GUI da aka fassara.
Tashar gudanarwa wata fuska ce ta sarrafawa mai gata, don haka kada ka buɗe sabon mai sauraro kuma kada ka yi gaba da GUI akan tashar da ta riga ta mallaka.
Masu gadin tsara suna hana tsofaffin sakamako
Kowane lura na wani yunƙurin haɗi ne. Ƙara ma'aunin tsara lokacin da sabon yunƙuri ya fara, lokacin da tashar ta ɓace, da lokacin da abokin ciniki ya ba da rahoton fita.
Yi la'akari da binciken da aka fara a lokacin haɗin A. Ramin ya faɗi, haɗin B ya fara, sannan nasarar HTTP da ta jinkirta ta A ta zo bayan haka. Ba tare da mai gadi ba, wancan tsohon sakamakon yana mai da nuni kore yayin da B ke kan tantancewa. Sokewa na rage aikin banza, kuma duba tsara ita ce ke hana cikakkiyar da ta tsufa zama halin yanzu:
var generation = _generation;
var reachable = await ProbeAsync(token);
if (generation != _generation) return;
Publish(reachable);
Yi amfani da wannan ƙa'idar a kewayen aikawa zuwa UI, domin sabuntawar da aka yi marshalling na iya zuwa bayan tsara ta wuce gaba.
Farkon aiki da sake haɗawa rayuwa ɗaya ne
Ɗauki haɗin farko, sake haɗawa da asarar tashar a matsayin rayuwa ɗaya da ƙa'idodi guda ɗaya:
- Karanta halin yanzu kuma yi rajista ga sanarwa a mataki ɗaya inda fuskar ta yarda.
- Yi wa kowace lura alama da asalin haɗin da tsara.
- Soke shiri a lokacin sake haɗawa, fita, ko ɓatacciyar tashar lura.
- Bincika sirrin albarkatu ne kawai bayan mai shi ya ba da rahoton kammala farkon aiki.
- Wallafa sakamakon da har yanzu na tsara ta yanzu ne kawai.
Ɓatacciyar tashar tana nufin ba a sani ba, ba a yanke ba. Ba da rahoton abin da ba a sani ba ya fi gaskiya fiye da ba da rahoton yankewar da ba za ka iya tabbatarwa ba, kuma yana hana dabarar sake gwadawa yin aiki bisa zato.
Ba da rahoton hujja, ba boolean ba
Mayar da sunan halin zaman da shirin albarkatu a matsayin ƙima daban-daban, kowanne yana ɗauke da shekaru. Mai amfani da ya kamata ya yanke shawara zai iya ganin cewa binciken da ya ci nasara na ƙarshe yana da daƙiƙa arba'in, wanda ya bambanta da sabon bayani.
Neman IP na jama'a ba hujja ba ce cewa wata sirriyar API ta yi amfani da hanyar da ake buƙata, don haka kada ka gabatar da ita kamar dai haka take.
Riƙe tilastawa a wajen mai lura
Kiran dawowa yana gudana bayan faruwar lamarin. Ba zai iya tabbatar da cewa babu wani fakiti da ya bar na'urar tsakanin taron da mai sarrafawa ba. Idan ƙira tana buƙatar toshewa, manufar cibiyar sadarwa dole ta samar da ita, kuma aikin mai lura shi ne ya bayyana hujjojin ga mai kiransa. Haɗa su biyun yana haifar da lambar da take tsammanin ita ce bangon wuta domin tana riƙe da boolean. Riƙe matakin tilastawa marar daɗi kuma mai iya gwadawa, kuma bar mai lura ya kasance mai karatu.
Sa'an nan tambayar UI ta zama mai sauƙi: nuna abin da aka sani, da shekarunsa, kuma ka ce ba a sani ba lokacin da haka yake.