WebSocket Ping enfront de TCP Keepalive a través d'un proxy
Trieu una comprovació de vivor per a l'interlocutor WebSocket en lloc de tractar un sòcol TCP viu com a prova que la ruta de l'aplicació respon.
Un sòcol TCP viu, un interlocutor WebSocket que respon i un progrés útil de l'aplicació són observacions diferents:
| Evidència | Què estableix |
|---|---|
| Vivor a nivell TCP | La ruta de transport comprovada respon en aquest nivell |
| Un WebSocket Pong coincident | L'interlocutor va respondre a aquesta trama de control |
| Un reconeixement de l'aplicació | L'aplicació va confirmar una operació segons el seu propi protocol |
Un proxy directe normalment manté connexions separades cap al client i cap a la destinació. L'interlocutor TCP del client és el proxy, mentre que un Ping dins d'un túnel establert viatja fins al punt final WebSocket.
Un Pong coincident
El protocol exigeix que un Pong de resposta porti les dades d'aplicació del Ping. Feu servir aquesta correspondència per identificar una sonda pendent. Un Pong no sol·licitat és permès, però no demana cap reconeixement; enviar-ne un després de cada missatge de dades aporta una evidència diferent.
Preferiu el mecanisme de batec compatible amb la biblioteca. El JavaScript del navegador necessita en canvi un contracte de batec a nivell d'aplicació. Trieu intervals i llindars de fallada segons la càrrega i la política de xarxa. Les pauses de planificació o un bucle d'esdeveniments sobrecarregat poden incomplir un llindar agressiu sense demostrar una xarxa fallida.
Manteniu el receptor en marxa
El client necessita entrada-sortida contínua per rebre i processar trames de control. Bloquejar aquest mecanisme pot fer que una mancança local sembli una caiguda.
Ping genera trànsit de túnel, però cada intermediari decideix què satisfà la seva política d'inactivitat. Cap batec garanteix protecció davant d'un límit absolut de durada de la connexió.
Un interlocutor pot respondre a Ping mentre la seva aplicació deixa de produir actualitzacions, i una subscripció silenciosa pot ser saludable. Seguiu per separat l'últim Pong vàlid i l'esdeveniment d'aplicació significatiu quan tots dos importen. En cas de fallada, conserveu la ruta, els temps transcorreguts i la sonda pendent, i després tanqueu o recupereu mitjançant el cicle de vida compatible.