Callback penyambungan ulang berjalan dan socket baru terbuka. Itu adalah pemulihan transport. Itu tidak otomatis berarti langganan, konfirmasi pesan, atau sesi aplikasi Anda berlanjut dari titik tempat koneksi sebelumnya berhenti.

Bahkan endpoint proxy yang sama dapat menghasilkan koneksi keluar yang baru. IP keluar yang berubah juga dapat memicu kebijakan sesi milik tujuan. Perlakukan socket baru sebagai koneksi baru dan ikuti pertukaran pemulihan yang didokumentasikan aplikasi. Putuskan apakah alur kerja harus mempertahankan rute proxynya saat menyambung ulang.

Simpan sedikit lebih banyak daripada URL terakhir

Status pemulihan yang berguna dapat mencakup identitas sesi yang sah, langganan yang diinginkan, pengenal peristiwa terakhir yang terkonfirmasi, dan operasi yang masih menunggu konfirmasi. Kolom-kolom itu milik protokol aplikasi; WebSocket tidak mendefinisikan token lanjut yang universal.

Putuskan apakah akan melanjutkan dari kursor, mengambil snapshot baru, atau menerima celah. Jika sumber peristiwa tidak menawarkan antarmuka pemutaran ulang, menyambung ulang lebih cepat tidak dapat membuktikan bahwa tidak ada pesan yang terlewat.

Mengirim dua kali bisa berarti melakukan dua kali

Pesan yang diantrekan secara lokal sebelum pemutusan mungkin tidak pernah keluar dari klien. Pesan lain mungkin telah mencapai server sementara konfirmasinya hilang. Mengirim ulang setiap perintah yang belum dikonfirmasi secara membabi buta memperlakukan kedua kasus itu sebagai sama.

Gunakan pengenal permintaan layanan, dukungan idempotensi, atau mekanisme rekonsiliasi jika tersedia. Penyambungan ulang transport tidak dapat membuat tindakan aplikasi menjadi dapat dibalik atau menghapus duplikasinya secara otomatis.

Jaga percobaan penyambungan ulang tetap terbatas dan berirama sesuai kebijakan aplikasi. RFC 6455 menyarankan mundur setelah penutupan abnormal; sekumpulan klien yang mencoba ulang segera dapat menambah beban gangguan.

Catat rute proxy yang dipilih setiap percobaan, tetapi pisahkan pemulihan rute dari pemulihan aplikasi. “Tersambung lagi” adalah bukti yang berguna. “Sudah menyusul dan siap mengirim lebih banyak pekerjaan” memerlukan pertukaran aplikasi tambahan yang menetapkannya.

Artikel terkait