En levande TCP-socket, en svarande WebSocket-motpart och användbara applikationsframsteg är olika observationer:

BevisVad det fastställer
Livskraft på TCP-nivåDen kontrollerade transportvägen svarar på den nivån
En matchande WebSocket PongMotparten besvarade den kontrollramen
En applikationsbekräftelseApplikationen bekräftade en operation enligt sitt eget protokoll

En vidarebefordrande proxy håller vanligen separata anslutningar mot klienten och destinationen. Klientens TCP-motpart är proxyn, medan en Ping inne i en etablerad tunnel färdas till WebSocket-slutpunkten.

En matchande Pong

Protokollet kräver att en svarande Pong bär Pingens applikationsdata. Använd den överensstämmelsen för att identifiera en utestående sondering. En oombedd Pong är tillåten men begär ingen bekräftelse; att skicka en efter varje datameddelande ger ett annat bevis.

Föredra bibliotekets stödda hjärtslagsmekanism. JavaScript i webbläsaren behöver i stället ettapplikationshjärtslagskontrakt. Välj intervall och feltrösklar efter arbetsbelastning och nätverkspolicy. Schemaläggningspauser eller en överbelastad händelseloop kan missa en aggressiv tröskel utan att fastställa att nätverket har fallerat.

Håll mottagaren igång

Klienten behöver löpande I/O för att ta emot och bearbeta kontrollramar. Att blockera den mekanismen kan få lokal resursbrist att se ut som ett avbrott.

Ping skapar tunneltrafik, men varje mellanled avgör vad som uppfyller dess idle-policy. Inget hjärtslag garanterar skydd mot en absolut livstidsgräns för anslutningen.

En motpart kan svara på Ping medan dess applikation slutar producera uppdateringar, och en tyst prenumeration kan vara frisk. Spåra senaste giltiga Pong och meningsfull applikationshändelse separat när båda spelar roll. Vid fel, behåll rutten, förfluten tid och utestående sondering och stäng eller återställ sedan via den stödda livscykeln.

Relaterade artiklar