Contoh obrolan sederhana menggunakan tambahan elemen UI Android untuk membangun contoh Connector dasar dan menunjukkan bagaimana untuk mendistribusikan pesan publik di SmartFoxServer 2X menggunakan Android 2.2 emulator.
Bertukar pesan chat fungsi yang paling dasar yang disediakan oleh SmartFoxServer 2X: pengguna terhubung ke Zona sama dapat mengirim pesan publik untuk semua pengguna lain di Ruang yang sama, pesan pribadi ke pengguna tunggal (tanpa ruang mereka berada di) dan jenis yang berbeda pesan pribadi (disebut pesan sobat) jika sistem Buddy Daftar diaktifkan. Juga, tambahan "kekuatan super" yang diberikan kepada pengguna yang diakui sebagai moderator atau administrator.
Chat fungsionalitas yang disediakan oleh SmartFoxServer 2X dapat menjadi inti dari fitur lengkap chatting situs / aplikasi, atau sistem yang saling melengkapi untuk memungkinkan pengguna untuk bertukar pesan selama pertandingan permainan atau jenis lain aplikasi. Dalam semua kasus SmartFoxServer memberikan fitur tambahan untuk membangun sistem chat yang lengkap, seperti kontrol moderasi, filtering kemampuan anti-banjir dan kata-kata canggih filter yang mendukung ekspresi reguler dan mode white-list / black-list.
Contoh obrolan sederhana hanya menunjukkan cara menggunakan pesan dasar masyarakat, untuk menjaga antarmuka grafis sesederhana mungkin. Kami meninggalkan kepada Anda untuk memperpanjang untuk menyertakan pesan pribadi, kontrol moderasi atau mengaktifkan anti-banjir dan kata-kata penyaringan.
Seperti contoh Connector, saat aplikasi diluncurkan, pengguna diminta untuk memasukkan SmartFoxServer 2X rincian sambungan (parameter koneksi pra-diisi digunakan oleh contoh ini adalah sama seperti untuk contoh sebelumnya, periksa tutorial untuk informasi tambahan pada nilai default untuk alamat IP).
Setelah rincian dikirimkan, sambungan ke SmartFoxServer 2X dicoba dan acara kemudian dipecat untuk memberitahukan jika koneksi telah dibentuk berhasil.
Setelah terhubung ke SmartFoxServer 2X pengguna diminta untuk memasukkan pegangan untuk sesi chat. Menggunakan pegangan ini, pengguna login ke dalam Zona BasicExamples tersedia di SFS2X secara default. Sebagai login pengguna, kita kemudian dapat beralih antara dua tampilan, salah satu yang menampilkan update status dan pesan chat publik, dan yang lainnya yang hanya berisi daftar semua pengguna login ke Ruang bergabung secara default.
»Instalasi
Untuk mengakses kode sumber aplikasi dan menjalankannya di Virtual Device Android (emulator), ikuti langkah berikut:
Pastikan instalasi SmartFoxServer 2X Anda berisi definisi BasicExamples Zona;
Mulai SmartFoxServer 2X;
Dalam Eclipse, mengimpor proyek Android yang terkandung dalam folder / sumber dari download di atas;
Meluncurkan aplikasi dan mengubah rincian sambungan jika Anda SmartFoxServer 2X tidak diinstal pada localhost mesin Anda.
»Kode highlights
Dalam contoh ini kita mengikuti skema yang sama seperti di Connector, sehingga langkah-langkah koneksi pada dasarnya sama satu-satunya perbedaan adalah bahwa kita meminta pengguna untuk Nick daripada menggunakan string kosong
Aplikasi ini berisi 3 layout (terletak di folder tata letak proyek):
Tata letak konektor: Dimana kita memilih IP dan port dan pilih "Connect"
Tata letak login: Dimana nama nick dimasukkan
Dan tata letak obrolan: Pandangan ini berisi TabHost dengan dua tab, yang pertama untuk chatting itu sendiri dan yang lain untuk daftar yang menyediakan pengguna saat ini terhubung ke kamar.
Untuk menjaga kode sesederhana mungkin, layout dibungkus dalam FrameLayout a. wadah ini menggunakan metode showLayout untuk menunjukkan tata letak yang sesuai (Dalam aplikasi nyata, kegiatan atau fragmen yang lebih cocok untuk menerapkan ide ini)
Kelas ChatMessage.java merupakan pesan untuk chatting memegang atribut berikut dan yang getter / setter
public class ChatMessage {
String nama pribadi;
String pesan pribadi;
Tanggal Tanggal swasta;
incomingMessage boolean swasta;
/ * Getter dan setter * /
}
Sebuah ArrayAdapter digunakan untuk mengelola daftar pengguna saat mereka bergabung dan meninggalkan ruangan default dan custom ArrayAdapter (MessagesAdapter.java) untuk menampilkan pesan. Untuk setiap pesan MessagesAdapter mengembang row_message.xml tata letak dan menetapkan teks, latar belakang dan gravitasi tergantung pada jenis pesan (masuk, keluar atau pesan sistem).
Kode berikut dipanggil saat pengguna menekan tombol Send di bagian bawah tab Chat. Dibutuhkan teks yang dimasukkan dalam kolom input dan, selama itu tidak kosong, menciptakan PublicMessageRequest baru yang dikirim ke server.
String pesan = inputChatMessage.getText () toString ().;
jika (message.length ()> 0) {
// Selama pesan adalah non-kosong membuat baru
// PublicMessage dan mengirim ke server
sfsClient.send (baru PublicMessageRequest (pesan));
inputChatMessage.setText ( "");
}
Peristiwa Server masuk adalah, seperti dalam contoh sebelumnya, ditangani dengan metode pengiriman ditimpa. Untuk contoh ini, kita mendengarkan acara baru, PUBLIC_MESSAGE. Ketika kita menerima pesan publik yang masuk kita membangun ChatMessage dan menambahkannya ke MessagesAdapter tersebut. Kami juga mendengarkan USER_ENTER_ROOM dan USER_EXIT_ROOM untuk menjaga tab pengguna up to date.
@Mengesampingkan
public void pengiriman (final BaseEvent event) melempar SFSException {
...
lain jika (event.getType (). equals (SFSEvent.USER_ENTER_ROOM)) {
. Akhir pengguna Pengguna = (User) event.getArguments () mendapatkan ( "user");
adapterUsers.add (user.getName ());
updateUsersTabLabel ();
adapterMessages.add (ChatMessage baru ( "Pengguna" + user.getName () + " 'bergabung ruang"));
}
// Bila pengguna meninggalkan ruangan daftar pengguna diperbarui
lain jika (event.getType (). equals (SFSEvent.USER_EXIT_ROOM)) {
. Akhir pengguna Pengguna = (User) event.getArguments () mendapatkan ( "user");
adapterUsers.remove (user.getName ());
updateUsersTabLabel ();
adapterMessages.add (ChatMessage baru ( "Pengguna" + user.getName () + " 'meninggalkan ruangan"));
}
// Bila pesan publik yang diterima itu ditambahkan ke obrolan
// sejarah
lain jika (event.getType (). equals (SFSEvent.PUBLIC_MESSAGE)) {
ChatMessage pesan = baru ChatMessage ();
. Pengguna pengirim = (pengguna) event.getArguments () mendapatkan ( "pengirim");
message.setUsername (sender.getName ());
message.setMessage (. event.getArguments () mendapatkan ( "pesan") toString ().);
message.setDate (Tanggal baru ());
// Jika id saya dan pengirim id berbeda adalah masuk a
// pesan
message.setIncomingMessage (sender.getId () = sfsClient.getMySelf () getId ()!.);
adapterMessages.add (pesan);
}
}
}
Seperti pada contoh Connector kita membebaskan sumber daya di onDestroy Kegiatan ini:
/ **
* Membebaskan sumber daya.
* /
@Mengesampingkan
void dilindungi onDestroy () {
super.onDestroy ();
disconnect ();
sfsClient.removeAllEventListeners ();
}
/ **
* Lepaskan klien dari server
* /
kekosongan disconnect swasta () {
jika (sfsClient.isConnected ()) {
sfsClient.disconnect ();
}
}
»Lainnya
Anda dapat mempelajari lebih lanjut tentang dasar-dasar SmartFoxServer dijelaskan dalam tutorial ini dengan konsultasi sumber daya berikut:
Fase masuk (server dasar login)
Bergabung dan menciptakan Kamar (bergabung dengan Kamar server)
Tidak ada komentar:
Posting Komentar