Rumah  >  Artikel  >  hujung hadapan web  >  Bilik sembang dalam talian ringkas berdasarkan kemahiran javascript, ajax, memcache dan PHP_javascript

Bilik sembang dalam talian ringkas berdasarkan kemahiran javascript, ajax, memcache dan PHP_javascript

WBOY
WBOYasal
2016-05-16 16:16:021325semak imbas

Bilik sembang dalam talian ialah platform rangkaian untuk berbilang orang untuk berkomunikasi Dengan ciptaan dan aplikasi matang semakin banyak teknologi baharu, ruang sembang dalam talian juga telah muncul menggunakan pelbagai teknologi. Ini saya ingin ringkaskan artikel ini.

Pertama sekali, mari kita bincangkan tentang teknologi bahagian hadapan yang terbaharu tentu saja adalah soket web berdasarkan HTML5, yang merealisasikan komunikasi dupleks penuh antara penyemak imbas dan pelayan. Protokol komunikasi WebSocket telah ditetapkan sebagai RFC 6455 standard oleh IETF pada tahun 2011, dan API WebSocket telah ditetapkan sebagai standard oleh W3C. Dalam API WebSocket, penyemak imbas dan pelayan hanya perlu melakukan tindakan berjabat tangan, dan kemudian saluran pantas dibentuk antara penyemak imbas dan pelayan. Data boleh dihantar terus antara keduanya. Walau bagaimanapun, memandangkan Websocket ialah API HTML5 dan tidak disokong oleh banyak penyemak imbas, kaedah ini tidak digunakan secara khusus sekarang. Yang kedua ialah ajax, yang menggunakan kaedah pengundian sekali-sekala, ia memuat turun data dari pelayan dan menyemak sama ada ia telah dikemas kini Kelebihannya ialah pemprosesan permintaan tak segerak (penyegerakan juga boleh ditetapkan), yang tidak menyekat yang lain Operasi, kelemahannya ialah pengundian tanpa gangguan bukan sahaja menggunakan lebar jalur, tetapi juga mengambil terlalu banyak sumber terminal dan pelayan, dan kerana undian ajax mempunyai selang masa, maklumat yang diperoleh bukan masa nyata, kerana ia tidak dicetuskan oleh mesej, dan kecekapan ajax hampir adalah yang paling rendah. Jenis ketiga ialah teknologi push berasaskan pelayan (komet) Ia dikatakan push, tetapi sebenarnya ia adalah pseudo-push Prinsipnya adalah untuk mewujudkan sambungan yang panjang antara terminal dan pelayan dengan menentukan sama ada kandungan sambungan yang panjang ini telah berubah Kelebihannya ialah ia menggunakan lebih sedikit sumber dan mempunyai prestasi masa nyata yang baik Ia memerlukan sokongan khas daripada pelayan dan memerlukan sambungan untuk masa yang lama. Semakin banyak perkhidmatan kini menggunakan teknologi ini.

Mari kita bincangkan tentang bahagian belakang Bilik Sembang adalah aplikasi berIO tinggi, dan pangkalan data mungkin merupakan kesesakan terbesar yang dicirikan oleh banyak teks pendek, serupa dengan Weibo. Dan ia adalah sistem berbilang pengguna Apabila bilangan pengguna mencapai susunan magnitud, jika pangkalan data relasi seperti Mysql digunakan, tekanan pertanyaan sepatutnya hebat. Jika tiada keperluan khas, saya secara peribadi berpendapat bahawa rekod sembang tidak perlu disimpan secara kekal Pada masa ini, sistem storan berasaskan memori seperti memcache dan redis boleh dimainkan. Di bawah ialah ruang sembang dalam talian ringkas berdasarkan memcache php ajax yang saya bangunkan.

Dalam bilik sembang ini, semua rekod sembang disimpan dalam memcache cid digunakan untuk menyimpan id maksimum rekod sembang, dan msgcid digunakan untuk menyimpan rekod sembang Setiap kali rekod dimasukkan, cid meningkat sebanyak 1 . Meja penyambut tetamu memperoleh data format json melalui ajax Memandangkan memcache adalah berasaskan memori, keseluruhan sistem berjalan dengan sangat pantas. Di bawah ialah kod sumber sistem Terdapat hanya dua fail dalam keseluruhan sistem, yang bersama-sama kurang daripada 10KB.

Muat Turun Skrip Laman Utama

https://github.com/hitoy/online-chatroom

Keperluan sistem:
1. Memcache dipasang
2. PHP memasang sambungan memcache
3. Penyemak imbas moden yang menyokong Javascript dan ajax

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn