Rumah > Artikel > pembangunan bahagian belakang > Gunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata untuk menyediakan perkhidmatan komunikasi yang mudah
Dengan perkembangan Internet mudah alih, pemesejan segera telah menjadi semakin penting dan popular. Bagi kebanyakan syarikat, sembang langsung lebih seperti perkhidmatan komunikasi, menyediakan kaedah komunikasi yang mudah yang boleh menyelesaikan masalah perniagaan dengan cepat dan berkesan. Berdasarkan ini, artikel ini akan memperkenalkan cara menggunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata.
CodeIgniter ialah rangka kerja PHP ringan yang menyediakan satu siri alatan dan perpustakaan mudah untuk membantu pembangun membangunkan aplikasi yang lebih baik dengan pantas. Kelebihannya termasuk:
composer require codeigniter/frameworkSelepas pemasangan berjaya, gunakan arahan berikut untuk memulakan pelayan tempatan dengan cepat:
php -S localhost:8000Ini akan memulakan pelayan tempatan mendengar pada port 8000. Anda boleh mengakses aplikasi anda dengan menaip localhost:8000 dalam penyemak imbas anda. 2.2 Cipta pangkalan dataAplikasi sembang masa nyata perlu mencipta pangkalan data untuk menyimpan rekod sembang dan maklumat pengguna. Cipta pangkalan data bernama "sembang" dalam phpMyAdmin atau antara muka pangkalan data lain, dan buat dua jadual berikut:
CREATE TABLE `users` ( `id` int(11) NOT NULL AUTO_INCREMENT, `username` varchar(255) NOT NULL, `password` varchar(255) NOT NULL, `created_at` datetime NOT NULL, `updated_at` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=16 DEFAULT CHARSET=utf8;mesej:
CREATE TABLE `messages` ( `id` int(11) NOT NULL AUTO_INCREMENT, `sender_id` int(11) NOT NULL, `receiver_id` int(11) NOT NULL, `message` text NOT NULL, `created_at` datetime NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;2.3 Laksanakan fungsi pendaftaran dan log masuk pengguna Dalam CodeIgniter, anda boleh menggunakan perpustakaan sambungan pangkalan data lalai CodeIgniter. CI_DB_driver, yang boleh dibina segera. Tambah konfigurasi pangkalan data dalam fail config.php aplikasi:
$config['hostname'] = 'localhost'; $config['username'] = 'root'; $config['password'] = 'root'; $config['database'] = 'chat'; $config['dbdriver'] = 'mysqli'; $config['dbprefix'] = ''; $config['pconnect'] = FALSE; $config['db_debug'] = TRUE; $config['cache_on'] = FALSE; $config['cachedir'] = ''; $config['char_set'] = 'utf8'; $config['dbcollat'] = 'utf8_general_ci'; $config['swap_pre'] = ''; $config['encrypt'] = FALSE; $config['compress'] = FALSE; $config['stricton'] = FALSE; $config['failover'] = array(); $config['save_queries'] = TRUE;Seterusnya, kita perlu menentukan Model Pengguna untuk mengendalikan pendaftaran dan log masuk pengguna. Cipta fail bernama User_model.php dalam folder aplikasi/model dengan kod berikut:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class User_model extends CI_Model { public function register($data) { $this->db->insert('users', $data); } public function login($username, $password) { $this->db->select('*'); $this->db->from('users'); $this->db->where('username', $username); $this->db->where('password', $password); $query = $this->db->get(); return $query->row_array(); } }Kod di atas mentakrifkan dua kaedah: kaedah daftar() dan kaedah log masuk(). Kaedah daftar() digunakan untuk memasukkan data pengguna ke dalam jadual pengguna, dan kaedah log masuk() digunakan untuk mendapatkan data pengguna daripada pangkalan data. 2.4 Laksanakan fungsi sembang masa nyata Buat fail bernama chat.php dalam folder paparan aplikasi. Halaman ini mengandungi dua bahagian: antara muka sembang dan kotak input. Pertama, kita perlu mendapatkan sejarah sembang daripada pelayan melalui Ajax. Apabila pengguna log masuk, kami akan sentiasa memaparkan sejarah sembang terkini. Dapatkan sejarah sembang terkini melalui kod berikut:
function getMessages() { $.ajax({ url: '/chat/getMessages', type: 'POST', dataType: 'json', success: function(data) { // 将聊天记录插入到聊天界面 } }); } setInterval(function() { getMessages(); }, 1000);Kod di atas menggunakan Ajax jQuery untuk meminta kaedah getMessages() pada pelayan. Kaedah setInterval() menetapkan pemasa untuk mencetuskan kaedah getMessages() setiap saat. Seterusnya, kita perlu melaksanakan logik menghantar mesej. Selepas pengguna memasukkan mesej, mereka boleh menekan Enter atau klik butang Hantar untuk menghantar mesej. Kita perlu mendapatkan mesej daripada kotak input dan menghantarnya ke pelayan melalui Ajax: Kaedah
function sendMessage() { var message = $('#message').val(); $('#message').val(''); $.ajax({ url: '/chat/sendMessage', type: 'POST', data: {message: message}, success: function(data) { // 消息已发送 } }); } $('#send').click(function() { sendMessage(); }); $('#message').keydown(function(event) { if (event.keyCode == 13) { sendMessage(); } });sendMessage() mendapatkan mesej daripada kotak input dan menghantarnya ke pelayan. Kaedah ini boleh dicetuskan dengan mengklik butang hantar atau menekan kekunci Enter. Seterusnya, kita perlu melaksanakan kaedah getMessages() dan kaedah sendMessage() dalam pengawal Sembang. Cipta fail bernama Chat.php dalam folder aplikasi/pengawal dengan kod berikut:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); class Chat extends CI_Controller { public function __construct() { parent::__construct(); $this->load->model('message_model'); } public function index() { // 显示 页面 } public function getMessages() { $data = $this->message_model->get(); header('Content-Type: application/json'); echo json_encode($data); } public function sendMessage() { $message = $this->input->post('message'); $this->message_model->send($message); } }Kod di atas mentakrifkan 3 kaedah: kaedah index(), kaedah getMessages() dan kaedah sendMessage(). Kaedah index() digunakan untuk memaparkan halaman chat.php, kaedah getMessages() digunakan untuk mendapatkan rekod sembang terkini daripada pangkalan data, dan kaedah sendMessage() menerima mesej daripada klien dan menyimpannya dalam pangkalan data. 2.5 Melaksanakan senarai penggunaKita perlu mencipta fail bernama users.php dalam folder paparan aplikasi. Halaman ini mengandungi senarai yang menunjukkan pengguna yang berada dalam talian. Kita perlu menggunakan Ajax untuk mendapatkan senarai pengguna dalam talian daripada pelayan:
function getUsers() { $.ajax({ url: '/chat/getUsers', type: 'POST', dataType: 'json', success: function(data) { // 将在线用户列表插入到列表中 } }); } setInterval(function() { getUsers(); }, 2000);Kod di atas menggunakan Ajax jQuery untuk meminta kaedah getUsers() pada pelayan. Kaedah setInterval() menetapkan pemasa untuk mencetuskan kaedah getUsers() setiap 2 saat. Seterusnya, kita perlu melaksanakan kaedah getUsers() dalam pengawal Sembang. Kaedah ini akan mengembalikan senarai pengguna dalam talian:
public function getUsers() { $data = $this->message_model->getUsers(); header('Content-Type: application/json'); echo json_encode($data); }2.6 Lengkapkan aplikasiAkhir sekali, kita perlu menambah kaedah log masuk() dan kaedah daftar() dalam pengawal Indeks. Kaedah log masuk() digunakan untuk memaparkan halaman log masuk, dan kaedah daftar() digunakan untuk memaparkan halaman pendaftaran. Halaman pendaftaran dan log masuk adalah bentuk HTML yang mudah. Selepas melengkapkan langkah di atas, kami telah membangunkan aplikasi sembang masa nyata menggunakan rangka kerja PHP CodeIgniter. Pengguna boleh log masuk dengan memasukkan nama pengguna dan kata laluan mereka, menghantar mesej dan berbual dengan pengguna dalam talian.
Artikel ini memperkenalkan cara menggunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata. Ciri-ciri aplikasi termasuk pendaftaran pengguna dan log masuk, sembang langsung, senarai pengguna dalam talian, dsb. CodeIgniter ialah rangka kerja yang sangat sesuai untuk aplikasi bersaiz kecil dan sederhana Ia menyediakan satu siri alat dan perpustakaan yang mudah tetapi berkuasa yang boleh membantu pembangun membina aplikasi web dengan cepat. Tambahan pula, terdapat banyak aspek yang perlu dipertimbangkan semasa pembangunan aplikasi sembang langsung Jika anda membangunkan aplikasi yang serupa, kami mengesyorkan agar anda menggunakan pendekatan yang diterangkan dalam artikel ini dan menyesuaikannya dengan keperluan anda.
Atas ialah kandungan terperinci Gunakan rangka kerja PHP CodeIgniter untuk membangunkan aplikasi sembang masa nyata untuk menyediakan perkhidmatan komunikasi yang mudah. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!