En levende TCP-socket, en WebSocket-modpart der svarer, og nyttige fremskridt i applikationen er forskellige observationer:

BevisHvad det fastslår
Levetid på TCP-niveauDen kontrollerede transportvej svarer på det niveau
Et matchende WebSocket PongModparten besvarede den kontrolramme
En applikationsbekræftelseApplikationen bekræftede en handling under sin egen protokol

En videresendende proxy holder oftest separate forbindelser mod klienten og mod destinationen. Klientens TCP-modpart er proxien, mens en Ping inde i en etableret tunnel rejser til WebSocket-endepunktet.

Et matchende Pong

Protokollen kræver, at et svar-Pong bærer Pingens applikationsdata. Brug den sammenhæng til at identificere en igangværende test. Et uopfordret Pong er tilladt, men anmoder ikke om bekræftelse; at sende et efter hver databesked giver et andet bevis.

Foretræk bibliotekets understøttede heartbeat-mekanisme. JavaScript i browseren har i stedet brug for en applikationsheartbeat-kontrakt. Vælg intervaller og fejltærskler ud fra arbejdsbyrden og netværkspolitikken. Planlægningspauser eller en overbelastet hændelsesløkke kan misse en aggressiv tærskel uden at påvise et fejlet netværk.

Hold modtageren kørende

Klienten har brug for løbende I/O for at modtage og behandle kontrolrammer. Blokering af den mekanisme kan få lokal mangel til at ligne et nedbrud.

Ping skaber tunneltrafik, men hver mellemstation afgør selv, hvad der opfylder dens inaktivitetsregel. Intet heartbeat garanterer beskyttelse mod en absolut grænse for forbindelsens levetid.

En modpart kan svare på Ping, mens dens applikation holder op med at producere opdateringer, og et stille abonnement kan være sundt. Følg det sidste gyldige Pong og den meningsfulde applikationshændelse separat, når begge er vigtige. Ved fejl, bevar ruten, forløbne tider og den igangværende test, og luk eller genskab derefter via den understøttede livscyklus.

Relaterede artikler