Tilbagekaldet for genoprettelse kører, og den nye socket åbnes. Det er transportgenopretning. Det betyder ikke nødvendigvis, at dine abonnementer, beskedbekræftelser eller applikationssession fortsatte dér, hvor den forrige forbindelse stoppede.

Selv det samme proxy-endepunkt kan give en ny udgående forbindelse. En ændret udgående IP kan også udløse destinationens egen sessionspolitik. Behandl den nye socket som en ny forbindelse, og følg applikationens dokumenterede genopretningsudveksling. Beslut, om arbejdsgangen skal beholde sin proxy-rute ved genoprettelse.

Behold lidt mere end den sidste URL

Nyttig genopretningstilstand kan omfatte en autoriseret sessionsidentitet, ønskede abonnementer, id'et på den sidst bekræftede hændelse og handlinger, der stadig afventer bekræftelse. De felter tilhører applikationsprotokollen; WebSocket definerer ikke et universelt genoptagelsestoken.

Beslut, om du vil genoptage fra en markør, hente et nyt øjebliksbillede eller acceptere et hul. Hvis en hændelseskilde ikke tilbyder en grænseflade til afspilning, kan hurtigere genoprettelse ikke bevise, at ingen beskeder blev mistet.

At sende to gange kan betyde at gøre to gange

En besked, der blev sat i kø lokalt før en afbrydelse, har måske aldrig forladt klienten. En anden kan være nået serveren, mens dens bekræftelse gik tabt. Blind gensending af hver ubekræftet kommando behandler de to tilfælde som identiske.

Brug tjenestens anmodnings-id'er, idempotens-understøttelse eller afstemmningsmekanisme, hvor det er tilgængeligt. En transportgenoprettelse kan ikke gøre en applikationshandling reversibel eller automatisk fjerne dubletter af den.

Hold genoprettelsesforsøg begrænsede og med et tempo efter applikationens politik. RFC 6455 anbefaler tilbagerulning efter unormal lukning; en flok klienter, der prøver igen med det samme, kan øge belastningen under afbrydelsen.

Registrer, hvilken proxy-rute hvert forsøg valgte, men hold rute-genopretning adskilt fra applikationsgenopretning. “Forbundet igen” er nyttigt bevis. “Indhentet og klar til at indsende mere arbejde” kræver den ekstra applikationsudveksling, der fastslår det.

Relaterede artikler