Povratni klic ponovnega povezovanja se izvede in nova vtičnica se odpre. To je obnovitev prenosa. To še ne pomeni, da so se vaše naročnine, potrditve sporočil ali seja aplikacije nadaljevale tam, kjer se je prejšnja povezava ustavila.

Tudi ista končna točka proxyja lahko ustvari novo odhodno povezavo. Spremenjen izhodni IP lahko sproži tudi lastno politiko seje cilja. Novo vtičnico obravnavajte kot novo povezavo in sledite dokumentirani izmenjavi obnovitve aplikacije. Odločite se, ali mora delovni tok obdržati svojo pot prek proxyja pri ponovnem povezovanju.

Obdržite malo več kot zadnji URL

Koristno stanje obnovitve lahko vključuje pooblaščeno identiteto seje, želene naročnine, identifikator zadnjega potrjenega dogodka in operacije, ki še čakajo na potrditev. Ta polja pripadajo protokolu aplikacije; WebSocket ne določa univerzalnega žetona za nadaljevanje.

Odločite se, ali boste nadaljevali od kazalca, pridobili nov posnetek stanja ali sprejeli vrzel. Če vir dogodkov ne ponuja vmesnika za predvajanje, hitrejše ponovno povezovanje ne more dokazati, da ni bila izgubljena nobena sporočilo.

Pošiljanje dvakrat lahko pomeni izvedbo dvakrat

Sporočilo, postavljeno v lokalno čakalno vrsto pred prekinitvijo, morda ni nikoli zapustilo odjemalca. Drugo je morda doseglo strežnik, medtem ko se je njegova potrditev izgubila. Slepo ponovno pošiljanje vsakega nepotrjenega ukaza obravnava ta dva primera kot enaka.

Uporabite identifikatorje zahtev storitve, podporo idempotentnosti ali mehanizem usklajevanja, kjer so na voljo. Ponovno povezovanje prenosa ne more narediti dejanja aplikacije povratnega niti samodejno odstraniti njegovega podvajanja.

Ohranite poskuse ponovnega povezovanja omejene in tempo skladen s politiko aplikacije. RFC 6455 priporoča umik po nenormalnem zaprtju; množica odjemalcev, ki poskušajo takoj znova, lahko poveča obremenitev med izpadom.

Zabeležite, katero pot prek proxyja je izbral vsak poskus, vendar ohranite obnovitev poti ločeno od obnovitve aplikacije. »Spet povezano« je koristen dokaz. »Dohiteli in pripravljeni poslati več dela« zahteva dodatno izmenjavo aplikacije, ki to ugotovi.

Sorodni članki