Saya menulis server untuk game iOS. Permainan ini berbasis giliran dan satu-satunya saat server perlu mendorong informasi ke klien adalah untuk memberi tahu langkah lawan.
Saya ingin tahu apakah ada yang bisa mengomentari kinerja dan kemudahan implementasi perbedaan antara menggunakan websockets dan polling panjang. Juga, jika saya menggunakan websockets, haruskah saya hanya menggunakannya untuk menerima informasi dan mengirim permintaan POST untuk yang lainnya atau haruskah semua komunikasi melalui websocket?
Selain itu, apakah ada hal tambahan yang perlu dipertimbangkan antara websockets dan polling panjang jika saya tertarik juga untuk membuat klien web?
Jawaban:
Variasi dari teknik polling tradisional dan memungkinkan emulasi dorongan informasi dari server ke klien. Dengan polling yang lama, klien meminta informasi dari server dengan cara yang mirip dengan polling biasa.
Setelah informasi tersedia (atau setelah batas waktu yang sesuai), respons lengkap dikirim ke klien. Klien biasanya kemudian akan segera meminta kembali informasi dari server, sehingga server akan hampir selalu memiliki permintaan menunggu yang tersedia yang dapat digunakan untuk mengirimkan data sebagai respons terhadap suatu peristiwa.
Dalam konteks web / AJAX, polling panjang juga dikenal sebagai pemrograman Comet.
WebSockets menyediakan koneksi persisten antara klien dan server yang dapat digunakan kedua belah pihak untuk mulai mengirim data kapan saja.
Kesimpulan :
Jika ada kebutuhan komunikasi waktu nyata, Anda dapat memilih websockets dengan sangat baik.
Tapi di Long Polling:
Koneksi dibuat terbuka antara klien web dan server web sehingga ketika server memiliki informasi baru, ia dapat mendorongnya ke klien. Permintaan itu kemudian diselesaikan. Permintaan baru kemudian dibuat antara klien dan server dan kemudian menunggu pembaruan lain dari server. Koneksi TCP yang sama umumnya terbuka terus-menerus melalui beberapa permintaan karena keep-alives HTTP / 1.1.
Referensi dan pertimbangan lain:
Soket vs polling panjang PubNub - masa pakai baterai ponsel
Apa itu Long-Polling, Websockets, Server-Sent Events (SSE) dan Comet?
polling panjang di objektif-C
Pengenalan Websocket
Websocket Vs Long Polling
Menggunakan Websockets di Apps
Aplikasi Websocket
PushTechnology-Long Polling
sumber