Po opätovnom pripojení WebSocket cez proxy obnovte aj reláciu
Po nadviazaní nového pripojenia WebSocket cez proxy vedome obnovte odbery aplikácie a neistý stav správ.
Spätné volanie opätovného pripojenia sa vykoná a nový socket sa otvorí. To je obnova transportu. Neznamená to nutne, že vaše odbery, potvrdenia správ alebo relácia aplikácie pokračovali tam, kde sa predchádzajúce pripojenie zastavilo.
Aj ten istý koncový bod proxy môže vytvoriť nové odchádzajúce pripojenie. Zmenená výstupná IP môže tiež aktivovať vlastné pravidlá relácie cieľa. Považujte nový socket za nové pripojenie a postupujte podľa zdokumentovanej obnovovacej výmeny aplikácie. Rozhodnite, či si má pracovný postup pri opätovnom pripojení zachovať svoju trasu cez proxy.
Ponechajte si o čosi viac než poslednú URL
Užitočný stav obnovy môže zahŕňať autorizovanú identitu relácie, požadované odbery, identifikátor poslednej potvrdenej udalosti a operácie, ktoré ešte čakajú na potvrdenie. Tieto polia patria protokolu aplikácie; WebSocket nedefinuje univerzálny token na pokračovanie.
Rozhodnite, či pokračovať od kurzora, získať nový snímok stavu alebo prijať medzeru. Ak zdroj udalostí neponúka rozhranie na prehrávanie, rýchlejšie opätovné pripojenie nemôže dokázať, že žiadne správy nechýbajú.
Odoslanie dvakrát môže znamenať vykonanie dvakrát
Správa zaradená lokálne do frontu pred odpojením možno nikdy neopustila klienta. Iná sa mohla dostať na server, kým sa jej potvrdenie stratilo. Slepé opätovné odoslanie každého nepotvrdeného príkazu považuje tieto dva prípady za rovnaké.
Použite identifikátory požiadaviek služby, podporu idempotencie alebo mechanizmus zosúlaďovania, kde sú dostupné. Opätovné pripojenie transportu nemôže urobiť akciu aplikácie vratnou ani automaticky odstrániť jej duplicity.
Udržujte pokusy o opätovné pripojenie obmedzené a tempo podľa pravidiel aplikácie. RFC 6455 odporúča ustúpenie po abnormálnom zatvorení; množstvo klientov, ktorí skúšajú okamžite, môže zvýšiť zaťaženie počas výpadku.
Zaznamenajte, ktorú trasu cez proxy si zvolil každý pokus, ale držte obnovu trasy oddelene od obnovy aplikácie. „Znova pripojené“ je užitočný dôkaz. „Dohnali sme a sme pripravení odoslať viac práce“ vyžaduje dodatočnú výmenu aplikácie, ktorá to potvrdí.