Mit der Entwicklung des mobilen Internets ist Instant Messaging immer wichtiger und beliebter geworden. Für viele Unternehmen ist Live-Chat eher ein Kommunikationsdienst und bietet eine bequeme Kommunikationsmethode, mit der sich geschäftliche Probleme schnell und effektiv lösen lassen. Auf dieser Grundlage wird in diesem Artikel erläutert, wie Sie mit dem PHP-Framework CodeIgniter eine Echtzeit-Chat-Anwendung entwickeln.
CodeIgniter ist ein leichtes PHP-Framework, das eine Reihe einfacher Tools und Bibliotheken bereitstellt, um Entwicklern bei der schnellen Entwicklung besserer Anwendungen zu helfen. Zu seinen Vorteilen gehören:
2.1 Umgebungskonfiguration
Bevor wir unsere Anwendung ausführen, müssen wir zunächst das CodeIgniter-Framework installieren. Sie können Composer verwenden, um CodeIgniter zu installieren, ein PHP-Abhängigkeitsverwaltungstool.
Gehen Sie in Ihren Projektordner und installieren Sie CodeIgniter:
composer require codeigniter/framework
Verwenden Sie nach erfolgreicher Installation den folgenden Befehl, um schnell einen lokalen Server zu starten:
php -S localhost:8000
Dadurch wird ein lokaler Server gestartet, der Port 8000 überwacht. Sie können auf Ihre Anwendung zugreifen, indem Sie „localhost:8000“ in Ihren Browser eingeben.
2.2 Datenbank erstellen
Die Echtzeit-Chat-Anwendung muss eine Datenbank erstellen, um Chat-Datensätze und Benutzerinformationen zu speichern. Erstellen Sie eine Datenbank mit dem Namen „Chat“ in phpMyAdmin oder einer anderen Datenbankschnittstelle und erstellen Sie die folgenden zwei Tabellen:
unten Das ist es die Struktur der Tabelle:
Benutzer:
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;
Nachrichten:
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 Benutzerregistrierungs- und Anmeldefunktionen implementieren
In CodeIgniter können Sie die Standard-Datenbankverbindungsbibliothek CI_DB_driver von CodeIgniter verwenden, die einfach über den Konstruktor instanziiert werden kann.
Datenbankkonfiguration in der config.php-Datei der Anwendung hinzufügen:
$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;
Als nächstes müssen wir ein Benutzermodell definieren, um die Benutzerregistrierung und -anmeldung zu verwalten. Erstellen Sie eine Datei mit dem Namen User_model.php im Ordner application/models mit dem folgenden Code:
<?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(); } }
Der obige Code definiert zwei Methoden: die Methode register() und die Methode login(). Die Methode register() wird verwendet, um Benutzerdaten in die Benutzertabelle einzufügen, und die Methode login() wird verwendet, um Benutzerdaten aus der Datenbank abzurufen.
2.4 Echtzeit-Chat-Funktion implementieren
Erstellen Sie eine Datei mit dem Namen chat.php im Ansichtsordner der Anwendung. Diese Seite besteht aus zwei Teilen: Chat-Oberfläche und Eingabefeld.
Zuerst müssen wir den Chatverlauf über Ajax vom Server abrufen. Wenn ein Benutzer angemeldet ist, zeigen wir immer den neuesten Chatverlauf an. Rufen Sie den neuesten Chat-Verlauf über den folgenden Code ab:
function getMessages() { $.ajax({ url: '/chat/getMessages', type: 'POST', dataType: 'json', success: function(data) { // 将聊天记录插入到聊天界面 } }); } setInterval(function() { getMessages(); }, 1000);
Der obige Code verwendet jQuerys Ajax, um die getMessages()-Methode auf dem Server anzufordern. Die Methode setInterval() stellt den Timer so ein, dass er jede Sekunde die Methode getMessages() auslöst.
Als nächstes müssen wir die Logik zum Senden von Nachrichten implementieren. Nachdem der Benutzer die Nachricht eingegeben hat, kann er die Eingabetaste drücken oder auf die Schaltfläche „Senden“ klicken, um die Nachricht zu senden. Wir müssen die Nachricht aus dem Eingabefeld abrufen und über Ajax an den Server senden: Die Methode
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() ruft die Nachricht aus dem Eingabefeld ab und sendet sie an den Server. Diese Methode kann durch Klicken auf die Schaltfläche „Senden“ oder Drücken der Eingabetaste ausgelöst werden.
Als nächstes müssen wir die Methoden getMessages() und sendMessage() im Chat-Controller implementieren. Erstellen Sie eine Datei namens Chat.php im Ordner „application/controllers“ mit dem folgenden Code:
<?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); } }
Der obige Code definiert drei Methoden: die Methode index(), die Methode getMessages() und die Methode sendMessage(). Die Methode index() wird verwendet, um die Seite chat.php anzuzeigen, die Methode getMessages() wird verwendet, um die neuesten Chat-Datensätze aus der Datenbank abzurufen, und die Methode sendMessage() empfängt Nachrichten vom Client und speichert sie in der Datenbank.
2.5 Benutzerliste implementieren
Wir müssen eine Datei mit dem Namen „users.php“ im Ansichtenordner der Anwendung erstellen. Diese Seite besteht aus einer Liste mit Benutzern, die online sind. Wir müssen Ajax verwenden, um die Liste der Online-Benutzer vom Server abzurufen:
function getUsers() { $.ajax({ url: '/chat/getUsers', type: 'POST', dataType: 'json', success: function(data) { // 将在线用户列表插入到列表中 } }); } setInterval(function() { getUsers(); }, 2000);
Der obige Code verwendet jQuerys Ajax, um die getUsers()-Methode auf dem Server anzufordern. Die Methode setInterval() stellt den Timer so ein, dass die Methode getUsers() alle 2 Sekunden ausgelöst wird.
Als nächstes müssen wir die Methode getUsers() im Chat-Controller implementieren. Diese Methode gibt die Liste der Online-Benutzer zurück:
public function getUsers() { $data = $this->message_model->getUsers(); header('Content-Type: application/json'); echo json_encode($data); }
2.6 Vervollständigen Sie die Anwendung
Abschließend müssen wir die Methoden login() und register() im Index-Controller hinzufügen. Die Methode login() wird verwendet, um die Anmeldeseite anzuzeigen, und die Methode register() wird verwendet, um die Registrierungsseite anzuzeigen. Die Registrierungs- und Anmeldeseiten sind einfache HTML-Formulare.
Nach Abschluss der oben genannten Schritte haben wir eine Echtzeit-Chat-Anwendung mit dem PHP-Framework CodeIgniter entwickelt. Benutzer können sich durch Eingabe ihres Benutzernamens und Passworts anmelden, Nachrichten senden und mit Online-Benutzern chatten.
In diesem Artikel wird erläutert, wie Sie mit dem PHP-Framework CodeIgniter eine Echtzeit-Chat-Anwendung entwickeln. Zu den Funktionen der App gehören Benutzerregistrierung und -anmeldung, Live-Chat, Online-Benutzerliste usw. CodeIgniter ist ein Framework, das sich sehr gut für kleine und mittlere Anwendungen eignet. Es bietet eine Reihe einfacher, aber leistungsstarker Tools und Bibliotheken, die Entwicklern beim schnellen Erstellen von Webanwendungen helfen können. Darüber hinaus gibt es bei der Entwicklung einer Live-Chat-Anwendung viele Aspekte zu berücksichtigen. Wenn Sie eine ähnliche Anwendung entwickeln, empfehlen wir Ihnen, den in diesem Artikel beschriebenen Ansatz zu übernehmen und ihn entsprechend Ihren Bedürfnissen anzupassen.
Das obige ist der detaillierte Inhalt vonVerwenden Sie das PHP-Framework CodeIgniter, um eine Echtzeit-Chat-Anwendung zu entwickeln und bequeme Kommunikationsdienste bereitzustellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!