Soket TCP yang hidup, peer WebSocket yang merespons, dan kemajuan aplikasi yang berguna adalah pengamatan yang berbeda:

BuktiApa yang ditetapkannya
Keaktifan pada tingkat TCPJalur transport yang diperiksa merespons pada tingkat itu
WebSocket Pong yang cocokPeer menjawab frame kontrol tersebut
Konfirmasi dari aplikasiAplikasi mengonfirmasi operasi menurut protokolnya sendiri

Proxy maju biasanya memelihara koneksi terpisah ke arah klien dan ke arah tujuan. Peer TCP klien adalah proxy, sedangkan Ping di dalam terowongan yang terbentuk berjalan ke titik akhir WebSocket.

Pong yang cocok

Protokol mewajibkan Pong yang menjawab membawa data aplikasi dari Ping. Gunakan kesesuaian itu untuk mengenali probe yang masih tertunda. Pong tanpa permintaan diperbolehkan, tetapi tidak meminta konfirmasi; mengirimkannya setelah setiap pesan data memberikan bukti yang berbeda.

Utamakan mekanisme detak jantung yang didukung pustaka. JavaScript peramban justru membutuhkan kontrak detak jantung tingkat aplikasi. Pilih interval dan ambang kegagalan sesuai beban kerja dan kebijakan jaringan. Jeda penjadwalan atau event loop yang kelebihan beban dapat melewati ambang agresif tanpa membuktikan jaringan gagal.

Jaga penerima tetap berjalan

Klien membutuhkan input dan output berkelanjutan untuk menerima dan memproses frame kontrol. Memblokir mekanisme itu dapat membuat kekurangan lokal tampak seperti gangguan.

Ping menciptakan lalu lintas terowongan, tetapi setiap perantara memutuskan sendiri apa yang memenuhi kebijakan diamnya. Tidak ada detak jantung yang menjamin perlindungan dari batas mutlak masa hidup koneksi.

Peer dapat menjawab Ping sementara aplikasinya berhenti menghasilkan pembaruan, dan langganan yang sunyi bisa tetap sehat. Lacak Pong terakhir yang valid dan peristiwa aplikasi yang bermakna secara terpisah ketika keduanya penting. Saat gagal, pertahankan rute, waktu yang berlalu, dan probe yang tertunda, lalu tutup atau pulihkan melalui siklus hidup yang didukung.

Artikel terkait