Saya terus membaca tentang pesan ping / pong di soket web untuk menjaga koneksi tetap hidup, tapi saya tidak yakin apa itu. Apakah ini jenis bingkai yang berbeda? (Saya tidak melihat metode apa pun pada objek WebSocket javascript di chrome yang terkait dengan ping-pong). Atau apakah itu hanya pola desain (misalnya saya benar-benar mengirim "ping" atau string lain ke server dan minta ia merespons). Apakah ping-pong sama sekali terkait dengan bingkai lanjutan?
Alasan saya bertanya adalah saya menggunakan kerangka python yang berjalan di belakang Mongrel2, jadi saya bertanya-tanya apakah ada cara untuk mengirim Mongrel2 pesan ping / pong tertentu yang akan memberitahu itu untuk menjaga koneksi tetap hidup tanpa aplikasi python saya perlu khawatirkan itu. Analog dengan memiliki metode HTTP terpisah untuk itu, saya kira. Dan saya membayangkan bingkai pesan ping / pong khusus bisa lebih sederhana (lebih sedikit memuat pada server dan jaringan) daripada string "ping", meskipun itu mungkin tidak terlalu masalah.
EDIT: Saya baru saja melihat RFC 6455 dan sepertinya Ping dan Pong jelas-jelas mengontrol tipe frame dengan opcode mereka sendiri. Jadi bagaimana cara mengirim bingkai Ping dari javascript di Chrome?
sumber
Jawaban:
Tidak ada Javascript API untuk mengirim bingkai ping atau menerima bingkai pong. Ini didukung oleh browser Anda, atau tidak. Juga tidak ada API untuk mengaktifkan, mengkonfigurasi atau mendeteksi apakah browser mendukung dan menggunakan bingkai ping / pong. Ada diskusi tentang membuat API ping / pong Javascript untuk ini. Ada kemungkinan ping mungkin dapat dikonfigurasi / terdeteksi di masa mendatang, tetapi kemungkinan Javascript tidak akan dapat langsung mengirim dan menerima bingkai ping / pong.
Namun, jika Anda mengontrol kode klien dan server, maka Anda dapat dengan mudah menambahkan dukungan ping / pong di tingkat yang lebih tinggi. Anda akan membutuhkan semacam header / metadata jenis pesan dalam pesan Anda jika Anda belum memilikinya, tetapi itu cukup sederhana. Kecuali jika Anda berencana mengirim ping ratusan kali per detik atau memiliki ribuan klien secara bersamaan, biaya overhead akan sangat minim untuk melakukannya sendiri.
sumber
Ping dimaksudkan hanya dikirim dari server ke klien, dan browser harus menjawab sesegera mungkin dengan Pong OpCode, secara otomatis. Jadi Anda tidak perlu khawatir tentang itu di level yang lebih tinggi.
Meskipun tidak semua browser mendukung standar seperti yang seharusnya, mereka mungkin memiliki beberapa perbedaan dalam menerapkan mekanisme tersebut, dan bahkan mungkin berarti tidak ada fungsi respons Pong. Tetapi secara pribadi saya menggunakan Ping / Pong, dan tidak pernah melihat klien yang tidak menerapkan jenis OpCode ini dan respons otomatis pada implementasi sisi klien tingkat rendah.
sumber