モバイル インターネットの発展に伴い、インスタント メッセージングの重要性と人気がますます高まっています。多くの企業にとって、ライブ チャットはコミュニケーション サービスに似ており、ビジネス上の問題を迅速かつ効果的に解決できる便利なコミュニケーション手段を提供します。これを踏まえて、この記事ではPHPフレームワークCodeIgniterを使ってリアルタイムチャットアプリケーションを開発する方法を紹介します。
CodeIgniter は、開発者がより優れたアプリを迅速に開発できるようにする一連のシンプルなツールとライブラリを提供する軽量の PHP フレームワークです。その利点は次のとおりです。
2.1 環境構成
アプリケーションを実行する前に、まず CodeIgniter フレームワークをインストールする必要があります。 Composer を使用して、PHP 依存関係管理ツールである CodeIgniter をインストールできます。
プロジェクト フォルダーに移動し、CodeIgniter をインストールします:
composer require codeigniter/framework
インストールが成功したら、次のコマンドを使用してローカル サーバーをすぐに起動します:
php -S localhost:8000
これにより、ローカル サーバーが起動します。 、ポート 8000 でリッスンします。ブラウザに「localhost:8000」と入力すると、アプリケーションにアクセスできます。
2.2 データベースの確立
リアルタイム チャット アプリケーションは、チャット記録とユーザー情報を保存するデータベースを作成する必要があります。 phpMyAdmin またはその他のデータベース インターフェイスで「chat」という名前のデータベースを作成し、次の 2 つのテーブルを作成します:
テーブルの構造は次のとおりです:
users:
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;
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 ユーザー登録を実装します。およびログイン関数
CodeIgniter では、CodeIgniter のデフォルトのデータベース接続ライブラリ CI_DB_driver を使用できます。これは、コンストラクターを通じて簡単にインスタンス化できます。
アプリケーションの config.php ファイルにデータベース構成を追加します:
$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;
次に、ユーザーの登録とログインを処理するユーザー モデルを定義する必要があります。 application/models フォルダーに User_model.php という名前のファイルを作成します。コードは次のとおりです:
<?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(); } }
上記のコードは、register() メソッドと login() メソッドの 2 つのメソッドを定義します。 register() メソッドはユーザー データを users テーブルに挿入するために使用され、login() メソッドはデータベースからユーザー データを取得するために使用されます。
2.4 リアルタイム チャット機能の実装
アプリケーションの views フォルダーに chat.php という名前のファイルを作成します。このページには、チャット インターフェイスと入力ボックスの 2 つの部分が含まれています。
まず、Ajax を介してサーバーからチャット レコードを取得する必要があります。ユーザーがログインすると、常に最新のチャット履歴が表示されます。次のコードを使用して、最新のチャット履歴を取得します。
function getMessages() { $.ajax({ url: '/chat/getMessages', type: 'POST', dataType: 'json', success: function(data) { // 将聊天记录插入到聊天界面 } }); } setInterval(function() { getMessages(); }, 1000);
上記のコードは、jQuery の Ajax を使用して、サーバー上の getMessages() メソッドをリクエストします。 setInterval() メソッドは、getMessages() メソッドを毎秒トリガーするタイマーを設定します。
次に、メッセージを送信するロジックを実装する必要があります。ユーザーはメッセージを入力した後、Enter キーを押すか、[送信] ボタンをクリックしてメッセージを送信できます。入力ボックスからメッセージを取得し、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() メソッドは入力ボックスからメッセージを取得し、サーバーに送信します。このメソッドは、送信ボタンをクリックするか Enter キーを押すことでトリガーできます。
次に、チャット コントローラーに getMessages() メソッドと sendMessage() メソッドを実装する必要があります。 application/controllers フォルダーに Chat.php という名前のファイルを作成します。コードは次のとおりです:
<?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); } }
上記のコードは、index() メソッド、getMessages() メソッド、sendMessage() メソッドの 3 つのメソッドを定義しています。 index() メソッドは chat.php ページを表示するために使用され、getMessages() メソッドはデータベースから最新のチャット レコードを取得するために使用され、sendMessage() メソッドはクライアントからメッセージを受信してデータベースに保存します。
2.5 ユーザー リストの実装
アプリケーションのビュー フォルダーに users.php という名前のファイルを作成する必要があります。このページは、オンライン中のユーザーを示すリストで構成されます。 Ajax を使用して、サーバーからオンライン ユーザーのリストを取得する必要があります。
function getUsers() { $.ajax({ url: '/chat/getUsers', type: 'POST', dataType: 'json', success: function(data) { // 将在线用户列表插入到列表中 } }); } setInterval(function() { getUsers(); }, 2000);
上記のコードは、jQuery の Ajax を使用して、サーバー上の getUsers() メソッドをリクエストします。 setInterval() メソッドは、2 秒ごとに getUsers() メソッドをトリガーするようにタイマーを設定します。
次に、Chat コントローラーに getUsers() メソッドを実装する必要があります。このメソッドはオンライン ユーザーのリストを返します。
public function getUsers() { $data = $this->message_model->getUsers(); header('Content-Type: application/json'); echo json_encode($data); }
2.6 アプリケーションを完了します
最後に、Index コントローラーに login() メソッドと register() メソッドを追加する必要があります。ログインページの表示にはlogin()メソッドを使用し、登録ページの表示にはregister()メソッドを使用します。登録ページとログインページは単純な HTML フォームです。
上記の手順を完了した後、PHP フレームワーク CodeIgniter を使用してリアルタイム チャット アプリケーションを開発しました。ユーザーは、ユーザー名とパスワードを入力してログインし、メッセージを送信したり、オンライン ユーザーとチャットしたりできます。
この記事では、PHP フレームワーク CodeIgniter を使用してリアルタイム チャット アプリケーションを開発する方法を紹介します。アプリの機能には、ユーザー登録とログイン、ライブチャット、オンラインユーザーリストなどが含まれます。 CodeIgniter は、中小規模のアプリケーションに非常に適したフレームワークで、開発者が Web アプリケーションを迅速に構築できるようにする一連のシンプルだが強力なツールとライブラリを提供します。さらに、ライブ チャット アプリケーションの開発中に考慮すべき点は数多くあります。同様のアプリケーションを開発している場合は、この記事で説明されているアプローチを採用し、ニーズに応じて調整することをお勧めします。
以上がPHP フレームワーク CodeIgniter を使用して、便利なコミュニケーション サービスを提供するリアルタイム チャット アプリケーションを開発します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。