Halo kembali saya akan sharing mengenai koding-mengkoding dalam PHP, kali ini kita akan membahas dasar membuat aplikasi real time dengan php teknik long polling. Aplikasi real time yang umum disajikan diantaranya seperti notifikasi pada facebook, DISQUS, aplikasi chat yang real time, dan lain sebagainya.
Ada beberapa cara yang bisa digunakan untuk membuat aplikasi realtime diantaranya ada web socket, long polling, kemudian ada pihak ke tiga seperti firebase. Pada tutorial kali ini hanya akan dijelaskan sedikit dasar aplikasi real time dengan long polling, ya menggunakan PHP.
Oh iya sekedar kabar baik, bahwa performa paling cepat akses dari berbagai bahasa pemrogaman web dimenangkan oleh go lang, nah kini php 7.3 kurang lebih bisa menyamainya. PHP kembali lagi bisa diandalkan. Oke sedikit intermezo, kita balik lagi ke tutorial.
Sebelum masuk ke pembahasan utama perlu diketahui bahwa, ide long polling ini sebagai solusi atas teknik yang sebelumnya ada yakni short polling.
Dibalik Short Polling
Short polling itu cara kerjanya seperti ini, Anda yang mungkin sudah pernah membuat aplikasi chatting berbasis php mysql dan ajax, kurang lebih cara kerjanya seperti ini : Ada 2 user, katakanlah user A dan user B, sedang melakukan chatting, user mengetikan pesan ketika dikirim, pesan masuk ke dalam database, nah user yang lain yang sedang diajax chat itu bisa melihat pesan yang dikirim karena ada setInterval yang setiap sekian milisecond , misalnya 1 detik memanggil database menggunakan AJAX request, dan tentunya akan ada 60 request dalam hitungan menit. Yang tentunya belum tentu user mengetikan pesan itu 1 pesan 1 detik, mungkin 1 pesan akan memakan beberapa detik. Sehingga pemborosan jika setinterval di set untuk memanggil ajax request setiap detiknya. Kemungkinan server akan jebol jika banyak orang chatting dalam satu waktu.
Long Polling
Nah berbeda dengan short polling, long polling hanya membuat satu request ke server, namun koneksi dibiarkan terbuka, nah ketika ada data/pesan baru maka akan dikirimkan kepada user. Jadi per user itu satu request, tidak seperti short polling yang setiap detik menghasilkan banyak request.
Untuk menjelaskan lebih teknis, saya telah membuat script sederhana, mengembangkan dari script yang sebelumnya ada. Script yang dikembangkan ini nantiya akan bermanfaat untuk Anda bisa di implementasikan ke dalam bentuk yang lebih kompleks. Script ini tidak menggunakan database, namun menggunakan file json statis.
Saya telah mempersiapkan 5 buah file seperti pada gambar di bawah ini,
untuk mencobanya bisa langsung masuk ke https://www.ilmuwebsite.com/labz/longpolling/
Anda yang ingin mencoba di localhost dan jika di localhost tidak terinstall ssl bisa mengganti di dalam file index.html semua yang https di rubah ke dalam http.
Yang paling penting adalah di dalam file server.php dan di barisan index.html khususnya barisan ini
OKe langsung saja, silahkan buka di dua browser windows halaman https://www.ilmuwebsite.com/labz/longpolling/
Lalu bagi menjadi dua layar, sehingga nantinya tampil seperti ini
Kemudian dibagian username yang windows browser pertama bisa ditulis user a, dan yang lainnya di tulis user b, untuk mengirim pesan silahkan ketikan di bagian your message here lalu enter saja. Apa yang Anda tulis di windows browser pertama akan tampil juga di windows browser lainnya
Sekian untuk scriptnya bisa Anda download di sini https://www.ilmuwebsite.com/labz/longpolling/longpolling.zip
Semoga bermanfaat tutorial dasar membuat aplikasi realtime dengan php, salam.
Loka Dwiartara
Founder Ilmuwebsite.com