Avec le développement de l'Internet mobile, la messagerie instantanée est devenue de plus en plus importante et populaire. Pour de nombreuses entreprises, le chat en direct s’apparente davantage à un service de communication, offrant une méthode de communication pratique permettant de résoudre rapidement et efficacement les problèmes commerciaux. Sur cette base, cet article présentera comment utiliser le framework PHP CodeIgniter pour développer une application de chat en temps réel.
CodeIgniter est un framework PHP léger qui fournit une série d'outils et de bibliothèques simples pour aider les développeurs à mieux développer candidatures rapidement. Ses avantages incluent :
composer require codeigniter/framework
php -S localhost:8000
2.2 Créer une base de données
L'application de chat en temps réel doit créer une base de données pour stocker les enregistrements de chat et les informations des utilisateurs. Créez une base de données nommée « chat » dans phpMyAdmin ou une autre interface de base de données, et créez les deux tables suivantes :
users : stocke les informations de base de l'utilisateur telles que le nom d'utilisateur et le mot de passe#🎜 🎜## 🎜🎜#messages : stocker les enregistrements de chatCREATE 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;
messages :
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 Implémenter les fonctions d'enregistrement et de connexion des utilisateurs
Dans CodeIgniter, vous pouvez utiliser la bibliothèque de connexion à la base de données par défaut de CodeIgniter, CI_DB_driver, qui peut être instanciée simplement via le constructeur.
Ajouter la configuration de la base de données dans le fichier config.php de l'application :
$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;
Ensuite, nous devons définir un modèle utilisateur pour gérer l'enregistrement et la connexion des utilisateurs. Créez un fichier nommé User_model.php dans le dossier application/models avec le code suivant :
<?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(); } }
Le code ci-dessus définit deux méthodes : la méthode register() et la méthode login(). La méthode register() est utilisée pour insérer les données utilisateur dans la table des utilisateurs et la méthode login() est utilisée pour obtenir les données utilisateur de la base de données.
2.4 Implémenter la fonction de chat en temps réel
Créez un fichier nommé chat.php dans le dossier vues de l'application. Cette page contient deux parties : l'interface de chat et la zone de saisie.
Tout d'abord, nous devons obtenir l'historique des discussions du serveur via Ajax. Lorsqu'un utilisateur est connecté, nous afficherons toujours le dernier historique de discussion. Obtenez le dernier historique des discussions via le code suivant :
function getMessages() { $.ajax({ url: '/chat/getMessages', type: 'POST', dataType: 'json', success: function(data) { // 将聊天记录插入到聊天界面 } }); } setInterval(function() { getMessages(); }, 1000);
Le code ci-dessus utilise l'Ajax de jQuery pour demander la méthode getMessages() sur le serveur. La méthode setInterval() définit le minuteur pour déclencher la méthode getMessages() toutes les secondes.
Ensuite, nous devons mettre en œuvre la logique d'envoi de messages. Une fois que l'utilisateur a saisi le message, il peut appuyer sur Entrée ou cliquer sur le bouton Envoyer pour envoyer le message. Nous devons récupérer le message de la zone de saisie et l'envoyer au serveur via Ajax :
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() récupère le message de la zone de saisie et l'envoie au serveur. Cette méthode peut être déclenchée en cliquant sur le bouton d'envoi ou en appuyant sur la touche Entrée.
Ensuite, nous devons implémenter la méthode getMessages() et la méthode sendMessage() dans le contrôleur Chat. Créez un fichier nommé Chat.php dans le dossier application/controllers. Le code est le suivant :
<?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); } }
Le code ci-dessus définit 3 méthodes : la méthode index(), la méthode getMessages() et la méthode sendMessage(). . La méthode index() est utilisée pour afficher la page chat.php, la méthode getMessages() est utilisée pour obtenir les derniers enregistrements de discussion de la base de données et la méthode sendMessage() reçoit les messages du client et les stocke dans la base de données.
2.5 Implémentation de la liste d'utilisateurs
Nous devons créer un fichier nommé users.php dans le dossier vues de l'application. Cette page consiste en une liste montrant les utilisateurs qui sont en ligne. Nous devons utiliser Ajax pour obtenir la liste des utilisateurs en ligne du serveur :
function getUsers() { $.ajax({ url: '/chat/getUsers', type: 'POST', dataType: 'json', success: function(data) { // 将在线用户列表插入到列表中 } }); } setInterval(function() { getUsers(); }, 2000);
Le code ci-dessus utilise l'Ajax de jQuery pour demander la méthode getUsers() sur le serveur. La méthode setInterval() définit le minuteur pour déclencher la méthode getUsers() toutes les 2 secondes.
Ensuite, nous devons implémenter la méthode getUsers() dans le contrôleur Chat. Cette méthode renverra la liste des utilisateurs en ligne :
public function getUsers() { $data = $this->message_model->getUsers(); header('Content-Type: application/json'); echo json_encode($data); }
2.6 Complétez l'application
Enfin, nous devons ajouter la méthode login() et la méthode register() dans l'index contrôleur. La méthode login() est utilisée pour afficher la page de connexion et la méthode register() est utilisée pour afficher la page d'inscription. Les pages d'inscription et de connexion sont de simples formulaires HTML.
Après avoir terminé les étapes ci-dessus, nous avons développé une application de chat en temps réel en utilisant le framework PHP CodeIgniter. Les utilisateurs peuvent se connecter en saisissant leur nom d'utilisateur et leur mot de passe, envoyer des messages et discuter avec les utilisateurs en ligne.
Cet article présente comment utiliser le framework PHP CodeIgniter pour développer une application de chat en temps réel. Les fonctionnalités de l'application incluent l'enregistrement et la connexion des utilisateurs, le chat en direct, la liste des utilisateurs en ligne, etc. CodeIgniter est un framework très adapté aux applications de petite et moyenne taille. Il fournit une série d'outils et de bibliothèques simples mais puissants qui peuvent aider les développeurs à créer rapidement des applications Web. De plus, de nombreux aspects sont à considérer lors du développement d’une application de chat en direct. Si vous développez une application similaire, nous vous recommandons d’adopter l’approche décrite dans cet article et de l’adapter en fonction de vos besoins.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!