Sekarang mari kita membuat aplikasi chatting dengan menggunakan php ajax dan
mysql sebagai database. Di sini kita memanfaatkan ajax untuk komunikasi
client (browser) ke server. Ajax setiap detik akan melakukan request ke
server (tanpa harus refresh). Di sini kita bisa memanfaat fungsi
setTimeout() pada javascript. Fungsi
setTimeout() berguna untuk me-set timer
setiap berapa per milisecond javascript mengeksekusi suatu fungsi, contoh :
setTimeout("ambilPesan()",1000);
Kode di atas berarti, eksekusi fungsi
ambilPesan()
setiap 1000 milisecond. Mari kita lihat konsep untuk membuat aplikasi
chatting:
- Kita buat objek ajax yang nantiya bertugas melakukan komunikasi ke
server
- User memasukkan nama, yang nantinya kita simpan dalam suatu variabel
- Ketika user selesai mengetik pesan, masukkan ke dalam database melalui
ajax
- User, baik kita sendiri atau orang lain, setiap 1 detik akan mengecek
ke server, apakah ada pesan baru, jika ada tampilkan.
Sekarang mari kita mulai membuat kode-kodenya
Berikut adah struktur tabel
drzchat di database :
Pertama-tama mari kita buat halaman untuk chat di browser.
drzchat.html
Pada kode drzchat.html di atas, setelah user mengisi nama, lalu klik tombol
login, maka kita menjalankan fungsi
taruhNama(), yang berguna untuk mengunci
nama yang sudah diketik sebagai user name di chatting. Setelah itu kita
manjalankan fungsi
ambilPesan(), yang berfungsi melakukan request ke server
apakah ada pesan yang terbaru dari database. Jika ada pesan terbaru maka kita
ambil dan taruh di browser dengan menggunakan fungsi atur
AmbilPesan().
Apabila kita sudah mengetik pesan, javascript akan menjalankan fungsi
kirimPesan().
Untuk mengerti apa itu
readyState, onreadystatechange silahkan
download tutorial pengenalan ajax
di sini.
Pada kode di atas objek ajax melakukan request atau komunikasi dengan file php
server, yaitu file
ambilchat.php. Berikut kodenya :
File ambilchat.php mempunya fungsi utama memasukkan pesan ke database dan
sekaligus mengecek apakah ada pesan terbaru dengan cara melakukan query "
select
* from drzchat where nomor > $akhir". Variabel
$akhir kita dapat dari
variabel yang dikirim oleh objek ajax, yang sebenarnya juga berasal field
nomor pada tabel drzchat.
Format data yang dikirim oleh server menggunakan format JSON, silahkan
download dan baca tutorial JSON
di sini.
Download Source Code
0 komentar