La devolució de trucada de reconnexió s'executa i el socket nou s'obre. Això és recuperació del transport. No vol dir necessàriament que les teves subscripcions, les confirmacions de missatges o la sessió de l'aplicació hagin continuat on es va aturar la connexió anterior.

Fins i tot el mateix punt final intermediari pot produir una connexió de sortida nova. Una IP de sortida canviada també pot activar la política de sessió pròpia de la destinació. Tracta el socket nou com una connexió nova i segueix l'intercanvi de recuperació documentat de l'aplicació. Decideix si el flux de treball ha de conservar la seva ruta d'intermediari en reconnectar.

Conserva una mica més que l'últim URL

L'estat de recuperació útil pot incloure una identitat de sessió autoritzada, les subscripcions desitjades, l'identificador de l'últim esdeveniment confirmat i les operacions que encara esperen confirmació. Aquests camps pertanyen al protocol de l'aplicació; WebSocket no defineix cap testimoni de represa universal.

Decideix si reprendre des d'un cursor, obtenir una instantània nova o acceptar un buit. Si una font d'esdeveniments no ofereix cap interfície de reproducció, reconnectar més de pressa no pot demostrar que no s'hagin perdut missatges.

Enviar dues vegades pot significar fer-ho dues vegades

Un missatge encuat localment abans d'una desconnexió potser mai no va sortir del client. Un altre potser va arribar al servidor mentre la seva confirmació es perdia. Reenviar a cegues cada ordre no confirmada tracta aquests dos casos com a idèntics.

Utilitza els identificadors de petició del servei, el suport d'idempotència o el mecanisme de reconciliació allà on estiguin disponibles. Una reconnexió del transport no pot fer reversible una acció de l'aplicació ni deduplicar-la automàticament.

Mantén els intents de reconnexió limitats i amb un ritme d'acord amb la política de l'aplicació. La RFC 6455 recomana retrocedir després d'un tancament anormal; una flota de clients que reintenten immediatament pot augmentar la càrrega de la interrupció.

Registra quina ruta d'intermediari ha triat cada intent, però mantén la recuperació de la ruta separada de la recuperació de l'aplicació. «Tornem a estar connectats» és una evidència útil. «Estem al dia i a punt per enviar més feina» necessita l'intercanvi addicional de l'aplicació que ho estableix.

Articles relacionats