WebSocket Ping kontra TCP Keepalive gjennom en proxy
Velg en levendekontroll for WebSocket-motparten i stedet for å behandle en levende TCP-sokkel som bevis på at applikasjonsveien svarer.
En levende TCP-sokkel, en responsiv WebSocket-motpart og nyttig applikasjonsframdrift er forskjellige observasjoner:
| Bevis | Hva det fastslår |
|---|---|
| Levedyktighet på TCP-nivå | Den kontrollerte transportveien svarer på det nivået |
| En samsvarende WebSocket Pong | Motparten besvarte den kontrollrammen |
| En applikasjonsbekreftelse | Applikasjonen bekreftet en operasjon under sin egen protokoll |
En videresendingsproxy opprettholder vanligvis separate forbindelser mot klienten og destinasjonen. Klientens TCP-motpart er proxyen, mens en Ping inne i en etablert tunnel reiser til WebSocket-endepunktet.
En samsvarende Pong
Protokollen krever at en svar-Pong bærer applikasjonsdataene til Ping-en. Bruk den sammenhengen til å identifisere en utestående sondering. En uanmodet Pong er tillatt, men ber ikke om bekreftelse; å sende en etter hver datamelding gir et annet bevis.
Foretrekk hjerteslagmekanismen som biblioteket støtter. JavaScript i nettleseren trenger i stedet enapplikasjonshjerteslagskontrakt. Velg intervaller og feilterskler for arbeidsbelastningen og nettverkspolicyen. Planleggingspauser eller en overbelastet hendelsesløkke kan bomme på en aggressiv terskel uten å fastslå at nettverket har sviktet.
Hold mottakeren i gang
Klienten trenger løpende I/O for å motta og behandle kontrollrammer. Blokkering av den maskineriet kan få lokal ressursmangel til å se ut som et avbrudd.
Ping skaper tunnelrafikk, men hvert mellomledd bestemmer hva som tilfredsstiller dets ledig-policy. Ingen hjerteslag garanterer beskyttelse mot en absolutt levetidsgrense for forbindelsen.
En motpart kan svare på Ping mens applikasjonen slutter å produsere oppdateringer, og et stille abonnement kan være sunt. Spor siste gyldige Pong og meningsfull applikasjonshendelse separat når begge betyr noe. Ved feil, behold ruten, forløpt tid og utestående sondering, og lukk eller gjenopprett gjennom den støttede livssyklusen.