現在の位置: ホーム> 最新記事一覧> PHPでリアルタイムチャット機能を実装する方法:完全なステップ分析

PHPでリアルタイムチャット機能を実装する方法:完全なステップ分析

M66 2025-06-12

導入

ライブチャット機能は、最新のソーシャルプラットフォームとアプリケーションの不可欠な部分になっています。インスタントコミュニケーションを提供するために、開発者は適切なテクノロジーを通じてこの機能を実装する必要があります。この記事では、PHPを使用して基本的なライブチャットシステムを実装する方法を示します。データベースの作成から始めて、各開発リンクを徐々に導入します。

ステップ1:データベーステーブルを作成します

まず、チャット情報を保存するためにデータベーステーブルを設計する必要があります。このテーブルには、少なくともメッセージID、送信者ID、受信機ID、メッセージコンテンツ、送信時間などのフィールドを含める必要があります。メッセージテーブルを作成するための簡単なSQLステートメントを次に示します。
 CREATE TABLE messages (
    id INT AUTO_INCREMENT PRIMARY KEY,
    sender_id INT,
    receiver_id INT,
    message TEXT,
    sent_at DATETIME
);

ステップ2:データベース接続を確立します

次に、PHPのデータベースへの接続を確立する必要があります。これは、次のコードを使用して達成できます。
 <?php
$conn = new mysqli('localhost', 'username', 'password', 'database');
if ($conn->connect_error) {
    die("データベースに接続できませんでした:" . $conn->connect_error);
}
?>

ステップ3:メッセージを送信します

ユーザーはフォームを介してメッセージを送信できます。送信後、メッセージはデータベースに保存されます。送信メッセージの処理のコードの例は次のとおりです。
 <?php
// メッセージと受信者を送信してくださいID
$message = $_POST['message'];
$receiverId = $_POST['receiver_id'];

// 送信者を取得しますID(セッションまたはログイン検証を通じて取得できます)
$senderId = $_SESSION['user_id'];

// 準備ステートメントを作成します
$stmt = $conn->prepare("INSERT INTO messages (sender_id, receiver_id, message, sent_at) VALUES (?, ?, ?, NOW())");
$stmt->bind_param("iis", $senderId, $receiverId, $message);
$stmt->execute();

// データが正常に挿入されるかどうかを確認してください
if ($stmt->affected_rows > 0) {
    echo "メッセージは正常に送信されました!";
} else {
    echo "送信に失敗しました!";
}

$stmt->close();
?>

ステップ4:メッセージを取得します

受信者は、新しいメッセージをリアルタイムで表示する必要があります。 Ajaxリクエストを使用すると、フロントエンドで定期的に新しいメッセージを取得できます。これがメッセージを取得するためのPHPコードの例です。
 <?php
// 受信者を取得しますID(セッションまたはログイン検証を通じて取得できます)
$receiverId = $_SESSION['user_id'];

// 準備ステートメントを作成します
$stmt = $conn->prepare("SELECT * FROM messages WHERE receiver_id = ? ORDER BY sent_at DESC");
$stmt->bind_param("i", $receiverId);
$stmt->execute();

// 結果セットを取得します
$result = $stmt->get_result();

// 結果セットを連想配列に変換します
$messages = $result->fetch_all(MYSQLI_ASSOC);

// 戻るJSON形式のメッセージ配列
echo json_encode($messages);

$stmt->close();
?>

ステップ5:フロントエンドディスプレイ

フロントエンドで、Ajaxリクエストを使用してメッセージを取得し、表示します。これがJavaScriptコードの例です。
 <?php
// 使用AJAXバックエンドからメッセージ配列を取得します
var xhr = new XMLHttpRequest();
xhr.open("GET", "get_messages.php", true);
xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 && xhr.status == 200) {
        var messages = JSON.parse(xhr.responseText);
        // メッセージ配列をループします,チャットウィンドウに表示されます
        for (var i = 0; i < messages.length; i++) {
            var message = messages[i];
            // メッセージコンテンツと送信者情報などを表示します。
            // ...
        }
    }
};
xhr.send();
?>

結論は

上記の手順を通じて、基本的なライブチャットシステムを正常に実装しました。ユーザーが送信したメッセージはデータベースに保存され、レシーバーはAJAXを介してリアルタイムで新しいメッセージを取得し、フロントエンドに表示できます。この記事が、PHPおよびAJAXテクノロジーを使用してリアルタイムチャット機能を構築する方法をよりよく理解できることを願っています。