WebSocket Ping verzus TCP Keepalive cez proxy
Vyberte kontrolu životnosti partnerského uzla WebSocket namiesto toho, aby ste živý TCP socket považovali za dôkaz, že cesta aplikácie odpovedá.
Živý TCP socket, odpovedajúci partner WebSocket a užitočný pokrok aplikácie sú odlišné pozorovania:
| Dôkaz | Čo ustanovuje |
|---|---|
| Životnosť na úrovni TCP | Overovaná transportná cesta odpovedá na tejto úrovni |
| Zodpovedajúci WebSocket Pong | Partner odpovedal na tento riadiaci rámec |
| Potvrdenie aplikácie | Aplikácia potvrdila operáciu podľa vlastného protokolu |
Preposielajúci proxy zvyčajne udržiava oddelené spojenia ku klientovi a k cieľu. TCP partnerom klienta je proxy, kým Ping v nadviazanom tuneli putuje ku koncovému bodu WebSocket.
Zodpovedajúci Pong
Protokol vyžaduje, aby odpovedajúci Pong niesol aplikačné dáta z Ping. Použite tú zhodu na identifikáciu nevyriešenej kontroly. Nevyžiadaný Pong je povolený, ale nežiada potvrdenie; jeho odoslanie po každej dátovej správe poskytuje iný dôkaz.
Uprednostnite mechanizmus srdca podporovaný knižnicou. JavaScript v prehliadači potrebuje namiesto tohozmluvu srdca aplikácie. Vyberte intervaly a prahy zlyhania podľa záťaže a sieťovej politiky. Pauzy plánovania alebo preťažená slučka udalostí môžu premárniť agresívny prah bez toho, aby určili zlyhanie siete.
Udržujte prijímač v chode
Klient potrebuje nepretržitý I/O na prijímanie a spracovanie riadiacich rámcov. Zablokovanie tohto mechanizmu môže spôsobiť, že lokálny nedostatok zdrojov bude vyzerať ako výpadok.
Ping vytvára tunelovú prevádzku, ale každý sprostredkovateľ sám rozhoduje, čo uspokojí jeho politiku nečinnosti. Žiadny tep srdca nezaručuje ochranu pred absolútnym limitom životnosti spojenia.
Partner môže odpovedať na Ping, kým jeho aplikácia prestane vytvárať aktualizácie, a tiché odoberanie môže byť zdravé. Sledujte posledný platný Pong a významnú udalosť aplikácie oddelene, keď sú dôležité obe. Pri zlyhaní si ponechajte trasu, uplynuté časy a nevyriešenú kontrolu, potom zatvorte alebo obnovte cez podporovaný životný cyklus.