Ruang obrolan online adalah platform online untuk komunikasi dengan banyak orang. Dengan penemuan dan kedewasaan semakin banyak teknologi baru, ruang obrolan online juga menggunakan berbagai teknologi. Saya ingin meringkas secara singkat artikel ini.
Pertama-tama, mari kita bicara tentang teknologi front-end. Yang terbaru tentu saja adalah Websocket berbasis HTML5, yang mengimplementasikan komunikasi dupleks penuh antara browser dan server. Protokol komunikasi Websocket ditetapkan sebagai RFC 6455 standar oleh IETF pada tahun 2011, dan Websocket API ditetapkan sebagai standar oleh W3C. Di Websocket API, browser dan server hanya perlu berjabat tangan, dan kemudian saluran cepat terbentuk antara browser dan server. Data dapat ditransmisikan langsung di antara keduanya. Namun, karena Websocket adalah API HTML5, banyak browser belum memiliki dukungan, jadi metode ini tidak terlalu digunakan sekarang. Tipe kedua adalah Ajax. Itu mengadopsi metode pemungutan suara. Sesekali, Anda mengunduh data di server untuk memeriksa apakah itu diperbarui. Keuntungannya adalah pemrosesan permintaan asinkron (sinkronisasi juga dapat diatur) dan tidak akan memblokir operasi pengguna lainnya. Kerugiannya adalah bahwa jajak pendapat yang tidak terputus tidak hanya mengkonsumsi bandwidth, tetapi juga menempati terlalu banyak sumber daya terminal dan server. Selain itu, karena ada interval waktu untuk pemungutan suara AJAX, pesan yang diperoleh tidak real-time, karena itu bukan pemicu pesan, dan efisiensi Ajax hampir paling rendah. Tipe ketiga adalah Teknologi Push (COMET) berbasis server. Ini disebut dorongan, tetapi sebenarnya adalah dorongan semu. Prinsipnya adalah membangun koneksi panjang antara terminal dan server. Meja depan memperoleh konten dengan menentukan apakah konten koneksi panjang ini telah berubah. Keuntungannya adalah bahwa ia menempati lebih sedikit sumber daya dan memiliki kinerja real-time yang baik. Itu memang membutuhkan dukungan khusus dari server dan menempati koneksi untuk waktu yang lama. Sekarang semakin banyak layanan mengadopsi teknologi ini.
Mari kita bicara tentang latar belakangnya. Ruang obrolan adalah aplikasi IO yang tinggi, dan database mungkin merupakan hambatan terbesar. Karakteristik obrolan adalah bahwa ada banyak teks pendek, mirip dengan Weibo. Selain itu, itu milik sistem multi-pengguna. Ketika pengguna mencapai urutan besarnya, jika database relasional seperti MySQL digunakan, tekanan kueri harus sangat tinggi. Jika tidak ada persyaratan khusus, saya pribadi percaya bahwa catatan obrolan tidak perlu disimpan secara permanen. Pada saat ini, sistem penyimpanan berbasis memori seperti Memcache dan Redis dapat berperan. Di bawah ini adalah ruang obrolan online sederhana berdasarkan AJAX+PHP+memcache yang saya kembangkan.
Di ruang obrolan ini, semua catatan obrolan disimpan di Memcache. ID maksimum catatan obrolan disimpan dengan CID dan catatan obrolan disimpan dengan MSGCID. Untuk setiap catatan yang dimasukkan, CID akan ditingkatkan dengan 1. Meja depan mendapatkan data format JSON melalui AJAX. Karena memcache didasarkan pada memori, sistem keseluruhan berjalan sangat cepat. Di bawah ini adalah kode sumber sistem. Hanya ada dua file di seluruh sistem, yang kurang dari 10kb bersama -sama.
Unduh wulin.com
https://github.com/hitoy/online-catroom
Persyaratan Sistem:
1. Memcache diinstal
2. Pasang ekstensi memcache di PHP
3. Browser modern yang mendukung JavaScript dan Ajax