WebSocket Ping berbanding TCP Keepalive Melalui Proksi
Pilih semakan hayat untuk rakan WebSocket dan bukannya menganggap soket TCP yang hidup sebagai bukti bahawa laluan aplikasi sedang bertindak balas.
Soket TCP yang hidup, rakan WebSocket yang responsif dan kemajuan aplikasi yang berguna ialah pemerhatian yang berbeza:
| Bukti | Apa yang ia tetapkan |
|---|---|
| Kehidupan pada tahap TCP | Laluan pengangkutan yang diperiksa bertindak balas pada tahap itu |
| Pong WebSocket yang sepadan | Rakan itu menjawab bingkai kawalan tersebut |
| Pengakuan aplikasi | Aplikasi mengesahkan operasi di bawah protokolnya sendiri |
Proksi hadapan biasanya mengekalkan sambungan berasingan untuk klien dan destinasi. Rakan TCP klien ialah proksi, manakala Ping di dalam terowong yang telah ditetapkan bergerak ke titik akhir WebSocket.
Pong yang sepadan
Protokol menghendaki Pong yang bertindak balas membawa data aplikasi Ping. Gunakan padanan itu untuk mengenal pasti siasatan yang belum selesai. Pong tanpa permintaan dibenarkan tetapi tidak meminta pengakuan; menghantarnya selepas setiap mesej data memberikan bukti yang berbeza.
Utamakan mekanisme denyutan jantung yang disokong pustaka. JavaScript pelayar sebaliknya memerlukankontrak denyutan jantung aplikasi. Pilih selang dan ambang kegagalan mengikut beban kerja dan dasar rangkaian. Jeda penjadualan atau gelung peristiwa yang terlebih beban boleh terlepas ambang agresif tanpa membuktikan rangkaian gagal.
Kekalkan penerima berjalan
Klien memerlukan I/O berterusan untuk menerima dan memproses bingkai kawalan. Menghalang jentera itu boleh membuat kekurangan sumber setempat kelihatan seperti gangguan.
Ping mencipta trafik terowong, tetapi setiap perantara memutuskan apa yang memenuhi dasar melahuannya. Tiada denyutan jantung menjamin perlindungan daripada had hayat sambungan mutlak.
Rakan boleh menjawab Ping walaupun aplikasinya berhenti menghasilkan kemas kini, dan langganan yang senyap boleh sihat. Jejaki Pong sah terakhir dan peristiwa aplikasi bermakna secara berasingan apabila kedua-duanya penting. Semasa kegagalan, simpan laluan, masa berlalu dan siasatan belum selesai, kemudian tutup atau pulihkan melalui kitaran hayat yang disokong.