Tras reconectar un WebSocket con proxy, restaura tamén a sesión
Restaura deliberadamente as subscricións da aplicación e o estado incerto das mensaxes despois de establecer unha nova conexión WebSocket con proxy.
Execútase a chamada de retorno de reconexión e o novo socket ábrese. Iso é recuperación do transporte. Non significa necesariamente que as túas subscricións, acuses de recibo de mensaxes ou a sesión da aplicación continuasen onde se detivo a conexión anterior.
Incluso o mesmo extremo de proxy pode producir unha nova conexión de saída. Unha IP de saída cambiada tamén pode activar a política de sesión propia do destino. Trata o novo socket como unha conexión nova e segue o intercambio de recuperación documentado da aplicación. Decide se o fluxo de traballo debe conservar a súa ruta de proxy ao reconectar.
Conserva algo máis que a última URL
O estado de recuperación útil pode incluír unha identidade de sesión autorizada, as subscricións desexadas, o identificador do último evento confirmado e as operacións que aínda esperan confirmación. Eses campos pertencen ao protocolo da aplicación; WebSocket non define un token de reanudación universal.
Decide se reanudar desde un cursor, obter unha instantánea nova ou aceptar un oco. Se unha fonte de eventos non ofrece interface de reprodución, reconectar máis rápido non pode demostrar que non se perderan mensaxes.
Enviar dúas veces pode significar facelo dúas veces
Unha mensaxe encolada localmente antes dunha desconexión pode que nunca saíse do cliente. Outra pode ter chegado ao servidor mentres se perdía o seu acuse. Reenviar ás cegas cada orde sen confirmar trata eses dous casos como idénticos.
Usa os identificadores de solicitude do servizo, a compatibilidade con idempotencia ou o mecanismo de conciliación cando estean dispoñibles. Unha reconexión do transporte non pode facer reversible unha acción da aplicación nin deduplicarla automaticamente.
Mantén os intentos de reconexión acoutados e cun ritmo acorde á política da aplicación. A RFC 6455 recomenda retroceder tras un peche anómalo; unha frota de clientes que reintentan de inmediato pode aumentar a carga da interrupción.
Rexistra que ruta de proxy escolleu cada intento, pero mantén a recuperación da ruta separada da recuperación da aplicación. «Conectados de novo» é unha evidencia útil. «Ao día e listos para enviar máis traballo» necesita o intercambio adicional da aplicación que o establece.