Återanslutningens callback körs och den nya socketen öppnas. Det är transportåterhämtning. Det betyder inte nödvändigtvis att dina prenumerationer, meddelandebekräftelser eller applikationssession fortsatte där den föregående anslutningen slutade.

Även samma proxy-slutpunkt kan ge en ny utgående anslutning. En ändrad utgående IP kan också utlösa destinationens egen sessionspolicy. Behandla den nya socketen som en ny anslutning och följ applikationens dokumenterade återhämtningsutbyte. Bestäm om arbetsflödet ska behålla sin proxyväg vid återanslutning.

Behåll lite mer än den senaste URL:en

Användbart återhämtningstillstånd kan omfatta en auktoriserad sessionsidentitet, önskade prenumerationer, id:t för den senast bekräftade händelsen och operationer som fortfarande väntar på bekräftelse. Dessa fält tillhör applikationsprotokollet; WebSocket definierar ingen universell återupptagningstoken.

Bestäm om du ska återuppta från en markör, hämta en ny ögonblicksbild eller acceptera en lucka. Om en händelsekälla inte erbjuder ett gränssnitt för uppspelning kan en snabbare återanslutning inte bevisa att inga meddelanden gick förlorade.

Att skicka två gånger kan betyda att göra två gånger

Ett meddelande som placerades i lokal kö före en frånkoppling kan aldrig ha lämnat klienten. Ett annat kan ha nått servern medan dess bekräftelse gick förlorad. Att blint skicka om varje obekräftat kommando behandlar dessa två fall som identiska.

Använd tjänstens förfrågnings-id:n, stöd för idempotens eller en avstämningsmekanism där de finns. En transportåteranslutning kan inte göra en applikationsåtgärd reversibel eller automatiskt ta bort dess dubblering.

Håll återanslutningsförsöken begränsade och i takt med applikationens policy. RFC 6455 rekommenderar att backa efter ett onormalt avslut; en flock klienter som försöker igen direkt kan öka belastningen under avbrottet.

Logga vilken proxyväg varje försök valde, men håll vägåterhämtning åtskild från applikationsåterhämtning. ”Ansluten igen” är ett användbart bevis. ”Ikapp och redo att skicka in mer arbete” kräver det extra applikationsutbyte som fastställer det.

Relaterade artiklar