Un socket TCP vivo, un peer WebSocket che risponde e un progresso utile dell'applicazione sono osservazioni diverse:

ProvaCosa stabilisce
Vitalità a livello TCPIl percorso di trasporto verificato risponde a quel livello
Un WebSocket Pong corrispondenteIl peer ha risposto a quel frame di controllo
Un riscontro dell'applicazioneL'applicazione ha confermato un'operazione secondo il proprio protocollo

Un proxy diretto mantiene di solito connessioni separate verso il client e verso la destinazione. Il peer TCP del client è il proxy, mentre un Ping dentro un tunnel stabilito viaggia fino all'endpoint WebSocket.

Un Pong corrispondente

Il protocollo richiede che un Pong di risposta porti i dati applicativi del Ping. Usate questa corrispondenza per identificare una sonda in sospeso. Un Pong non richiesto è ammesso, ma non chiede alcun riscontro; inviarne uno dopo ogni messaggio di dati fornisce una prova diversa.

Preferite il meccanismo di heartbeat supportato dalla libreria. Il JavaScript del browser ha invece bisogno di un contratto di heartbeat a livello applicativo. Scegliete intervalli e soglie di errore in base al carico e alla politica di rete. Le pause di pianificazione o un event loop sovraccarico possono mancare una soglia aggressiva senza dimostrare un guasto della rete.

Mantenete in funzione il ricevitore

Il client ha bisogno di I/O continuo per ricevere ed elaborare i frame di controllo. Bloccare questo meccanismo può far sembrare un'interruzione la scarsità locale.

Ping genera traffico nel tunnel, ma ogni intermediario decide cosa soddisfa la propria politica di inattività. Nessun heartbeat garantisce protezione da un limite assoluto di durata della connessione.

Un peer può rispondere a Ping mentre la sua applicazione smette di produrre aggiornamenti, e una sottoscrizione silenziosa può essere sana. Tenete traccia separatamente dell'ultimo Pong valido e dell'evento applicativo significativo quando contano entrambi. In caso di guasto, conservate il percorso, i tempi trascorsi e la sonda in sospeso, poi chiudete o recuperate tramite il ciclo di vita supportato.

Articoli correlati