WebSocket Ping kontra TCP Keepalive genom en proxy
Välj en livskontroll för WebSocket-motparten i stället för att se en levande TCP-socket som bevis på att applikationsvägen svarar.
En levande TCP-socket, en svarande WebSocket-motpart och användbara applikationsframsteg är olika observationer:
| Bevis | Vad det fastställer |
|---|---|
| Livskraft på TCP-nivå | Den kontrollerade transportvägen svarar på den nivån |
| En matchande WebSocket Pong | Motparten besvarade den kontrollramen |
| En applikationsbekräftelse | Applikationen 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.