Na een heraansluiting van WebSocket via een proxy ook de sessie herstellen
Herstel opzettelijk de abonnementen van de applicatie en de onzekere berichtstatus nadat een nieuwe WebSocket-verbinding via een proxy tot stand is gebracht.
De callback voor heraansluiten loopt en de nieuwe socket gaat open. Dat is herstel van het transport. Het betekent niet noodzakelijk dat je abonnementen, berichtbevestigingen of applicatiesessie zijn doorgegaan waar de vorige verbinding stopte.
Zelfs hetzelfde proxy-eindpunt kan een nieuwe uitgaande verbinding opleveren. Een gewijzigd uitgaand IP kan ook het eigen sessiebeleid van de bestemming activeren. Behandel de nieuwe socket als een nieuwe verbinding en volg de gedocumenteerde hersteluitwisseling van de applicatie. Beslis of de workflow zijn proxyroute moet behouden bij het heraansluiten.
Bewaar iets meer dan de laatste URL
Nuttige herstelstatus kan een geautoriseerde sessie-identiteit, de gewenste abonnementen, de id van de laatst bevestigde gebeurtenis en bewerkingen die nog op bevestiging wachten bevatten. Die velden horen bij het applicatieprotocol; WebSocket definieert geen universeel hervattingstoken.
Beslis of je hervat vanuit een cursor, een nieuwe momentopname ophaalt of een gat accepteert. Als een gebeurtenisbron geen interface voor afspelen biedt, kan sneller heraansluiten niet bewijzen dat er geen berichten zijn gemist.
Twee keer verzenden kan twee keer doen betekenen
Een bericht dat vóór een onderbreking lokaal in de wachtrij stond, heeft de client mogelijk nooit verlaten. Een ander kan de server hebben bereikt terwijl de bevestiging verloren ging. Elk onbevestigd commando blind opnieuw verzenden behandelt die twee gevallen als identiek.
Gebruik de verzoek-id's van de dienst, ondersteuning voor idempotentie of een afstemmingsmechanisme waar die beschikbaar zijn. Een transportheraansluiting kan een applicatieactie niet omkeerbaar maken of die automatisch ontdoen van duplicaten.
Houd heraansluitpogingen begrensd en in tempo volgens het beleid van de applicatie. RFC 6455 raadt terugschakelen aan na een abnormale sluiting; een vloot clients die meteen opnieuw probeert, kan de belasting van de storing verhogen.
Registreer welke proxyroute elke poging koos, maar houd routeherstel gescheiden van applicatieherstel. ‘Weer verbonden’ is nuttig bewijs. ‘Bijgewerkt en klaar om meer werk in te dienen’ vereist de extra applicatie-uitwisseling die dat vaststelt.