Callback-ul de reconectare rulează și noul socket se deschide. Aceasta este recuperarea transportului. Nu înseamnă neapărat că abonamentele, confirmările mesajelor sau sesiunea aplicației tale au continuat de unde s-a oprit conexiunea anterioară.

Chiar și același punct final de proxy poate produce o nouă conexiune de ieșire. O adresă IP de ieșire schimbată poate declanșa și politica de sesiune proprie a destinației. Tratează noul socket ca o conexiune nouă și urmează schimbul de recuperare documentat al aplicației. Decide dacă fluxul de lucru ar trebui să își păstreze ruta prin proxy la reconectare.

Păstrează puțin mai mult decât ultimul URL

O stare de recuperare utilă poate include o identitate de sesiune autorizată, abonamentele dorite, identificatorul ultimului eveniment confirmat și operațiunile care încă așteaptă confirmare. Acele câmpuri aparțin protocolului aplicației; WebSocket nu definește un token de reluare universal.

Decide dacă reiei de la un cursor, obții o imagine instantanee nouă sau accepți o lacună. Dacă o sursă de evenimente nu oferă o interfață de redare, reconectarea mai rapidă nu poate demonstra că nu s-au pierdut mesaje.

A trimite de două ori poate însemna a face de două ori

Un mesaj pus local în coadă înainte de o deconectare poate nu a părăsit niciodată clientul. Altul poate a ajuns la server în timp ce confirmarea lui se pierdea. Retrimiterea orbească a fiecărei comenzi neconfirmate tratează cele două cazuri ca identice.

Folosește identificatorii de cerere ai serviciului, suportul pentru idempotență sau un mecanism de reconciliere acolo unde sunt disponibile. O reconectare a transportului nu poate face o acțiune a aplicației reversibilă sau nu o poate deduplica automat.

Menține încercările de reconectare limitate și ritmate conform politicii aplicației. RFC 6455 recomandă retragerea după o închidere anormală; o flotă de clienți care reîncearcă imediat poate crește încărcarea întreruperii.

Înregistrează ce rută prin proxy a ales fiecare încercare, dar ține recuperarea rutei separată de recuperarea aplicației. „Reconectat” este o dovadă utilă. „Recuperat și gata să trimită mai multă muncă” necesită schimbul suplimentar al aplicației care stabilește asta.

Articole similare