Ruang obrolan pertama saya ditulis dalam ASP 3.0. Program ini relatif sederhana. Pada saat itu, untuk membangun ruang obrolan nyata, applet Java atau kontrol ActiveX harus digunakan. Ruang bagan berbasis HTTP menghadapi pertanyaan yang sama dengan ruang obrolan pertama saya. Masalah -masalah ini termasuk fenomena layar yang disebabkan oleh penyegaran halaman. Tetapi masalah ini telah diselesaikan oleh Ajax. Ajax adalah kombinasi dari panggilan asinkron JavaScript dan XML. Sekarang gunakan beberapa kode JavaScript di server untuk mencapai ruang obrolan nyata. Artikel ini tidak akan memperkenalkan Ajax, dan mengasumsikan bahwa Anda memiliki pemahaman tertentu tentang penggunaan Ajax dan ASP.NET. Cukup perkenalkan cara menggunakan teknologi AJAX untuk membuat ruang obrolan dasar.
Rutin
Ini adalah ruang obrolan tunggal dari multi -pengguna. Ini dapat mencapai fungsi obrolan dasar, dan juga mendukung beberapa baris perintah seperti: /admin jelas untuk menghapus riwayat obrolan, /nick [nama] untuk mengubah nama panggilan pengguna. Program ini menggambarkan program ini untuk memproses semua informasi obrolan dan informasi pengguna dengan kelas Chatedine.
Pengguna hashtable;
Obrolan StringCollection;
Menyatakan instance chatengine global di global.asax.cs, berbagi semua pengguna di ruang obrolan:
Public static uchat.chatngine.ichatngine engine = new uchat.chatngine.chatengine ();
Ada juga fungsi timer JavaScript yang digunakan untuk menyinkronkan variabel global dan informasi halaman.
Fungsi settimers ()
{{
timeId = window.setTimeout (updateLeAll (), refreshrate);
}
Setiap pengguna secara unik diidentifikasi oleh nama pengguna dan guid.
Public void addUser (ID String, Pengguna String)
{{
// Pastikan nama pengguna tidak ada alreamy
if (! Userexists (pengguna))
{{
// Tambahkan Pengguna ke Daftar Pengguna
Users.add (id, pengguna);
// Tampilkan pesan pemberitahuan untuk semua pengguna
Chat.add (this.makeservermessage (string.format (string.format (
Goinedfmt, pengguna))));
}
}
Program menjalankan antarmuka
Halaman Mulai menunjukkan beberapa informasi dasar tentang sesi saat ini, seperti nomor pengguna, ukuran riwayat obrolan. Pengguna harus memberikan nama pengguna untuk memasuki ruang obrolan. Klik tombol Login untuk memasukkan fungsi di bawah ini:
Login void yang dilindungi (pengirim objek, EventArgs e)
{{
string user = txtusername.text;
if (! validatenick (pengguna)) kembali;
if (global.engine.userexist (pengguna))
{{
lblerrormsg.text = pengguna dengan ini +
nama alream ada, coba lagi.;
Kembali;
}
Response.redirect (server.aspx? Action = login & u = + pengguna);
}
Setelah beberapa verifikasi sederhana, pengguna ditambahkan ke daftar pengguna melalui fungsi AddUser, dan kemudian memasuki Chat Room Page Chat.aspx.
<type skrip = teks/javascript>
sniffbrowserType ();
// menunjukkan pemuatan .. layar
showloadscreen ();
// atur timeer JavaScript dan
// Muat daftar dan pesan pengguna
settimers ();
setFocus ('myText');
</script>
Ketika pengguna mengetikkan beberapa informasi dan pengembalian, fungsi -fungsi berikut akan dipanggil:
<input type = class teks = myText
id = myText onedown = captureeturn (event)>
// Tangkap tombol Enter pada kotak input dan posting pesan
Function CaptureTurn (acara)
{{
if (event.whech || event.keycode)
{{
If ((event.whech == 13) || (event.keycode == 13))
{{
posttext ();
Mengembalikan false;
}
kalau tidak {
Kembali Benar;
}
}
}
Fungsi posttext ()
{{
Rnd ++;
// Kotak Teks Hapus Pertama
Chatbox = getElement (myText);
Chat = chatbox.value;
Chatbox.value =;
// Dapatkan Guid Pengguna dari URL
userid = logation.search.substring (1, local.search.length);
// Bangun URL Server AJAX
url = 'server.aspx?
encodeuricomponent (chat) + '& session =' + rnd;
// Buat dan atur instance
// objek permintaan xmlhttp yang tepat
Req = getajax ();
// Perbarui halaman dengan pesan baru
Req.onreadystatechange = function () {
if (req.readystate == 4 && req.status == 200) {{
UpdateLeAll ();
}
}
Req.open ('get', url, true);
Req.send (null);
}
Ada begitu banyak, tidak ada yang istimewa, Anda dapat melihat kode sumbernya, ada banyak informasi anotasi di dalamnya.
sebagai kesimpulan
Untuk membangun ruang obrolan dengan applet Java, Anda perlu menginstal JVM di mesin pengguna. Ada beberapa masalah keamanan dengan kontrol ActiveX. Dengan AJAX yang baru saja diperkenalkan, Anda dapat dengan mudah membuat program ruang obrolan berdasarkan HTTP yang tidak mengharuskan pengguna untuk menginstal perangkat lunak apa pun, dan mudah dipertahankan.