ホームページ バックエンド開発 PHPチュートリアル PHPベースのリアルタイムチャットシステムのグループチャットおよびプライベートチャット機能

PHPベースのリアルタイムチャットシステムのグループチャットおよびプライベートチャット機能

Aug 27, 2023 pm 02:43 PM
PHPライブチャット グループチャット プライベートチャット

PHPベースのリアルタイムチャットシステムのグループチャットおよびプライベートチャット機能

PHP ベースのリアルタイム チャット システムのグループ チャットとプライベート チャット機能

インターネットの発展に伴い、リアルタイム チャット システムがますます普及しています。私たちの日常生活において、ますます重要性が増しています。ソーシャル メディア プラットフォームで友人とチャットする場合でも、職場の同僚とコミュニケーションを取る場合でも、ライブ チャット システムは重要な役割を果たします。この記事では、PHP を使用して、グループ チャットとプライベート チャット機能をサポートするリアルタイム チャット ベースのシステムを開発する方法を紹介します。

まず、リアルタイム チャット リクエストを処理するサーバーをセットアップする必要があります。この機能を実装するには、PHP と WebSocket を使用します。 WebSocket は、ブラウザとサーバー間の全二重通信を可能にする TCP ベースのプロトコルです。 PHP では、Ratchet ライブラリを使用して WebSocket サーバーを作成できます。

まず、Ratchet ライブラリをインストールする必要があります。ターミナルで次のコマンドを実行します:

composer require cboden/ratchet
ログイン後にコピー

インストールが完了したら、server.php という名前のファイルを作成し、その中に次のコードを記述します:

<?php
require 'vendor/autoload.php';

use RatchetMessageComponentInterface;
use RatchetConnectionInterface;
use RatchetWebSocketWsServer;
use RatchetHttpHttpServer;
use RatchetServerIoServer;
use RatchetWampWampServerProtocol;

class Chat implements MessageComponentInterface
{
    protected $clients;

    public function __construct()
    {
        $this->clients = new SplObjectStorage;
    }

    public function onOpen(ConnectionInterface $conn)
    {
        $this->clients->attach($conn);
        echo "New connection! ({$conn->resourceId})
";
    }

    public function onMessage(ConnectionInterface $from, $msg)
    {
        // 处理客户端发送的消息
        $data = json_decode($msg);
        $type = $data->type;

        switch ($type) {
            case 'register':
                $from->username = $data->username;
                echo "User registered: " . $from->username . "
";
                break;
            case 'group':
                $message = $data->message;
                $this->broadcastMessage($from, $message);
                break;
            case 'private':
                $recipient = $data->recipient;
                $message = $data->message;
                $this->sendPrivateMessage($from, $recipient, $message);
                break;
        }
    }

    public function onClose(ConnectionInterface $conn)
    {
        $this->clients->detach($conn);
        echo "Connection {$conn->resourceId} has disconnected
";
    }

    public function onError(ConnectionInterface $conn, Exception $e)
    {
        echo "An error has occurred: {$e->getMessage()}
";
        $conn->close();
    }

    public function broadcastMessage($from, $message)
    {
        foreach ($this->clients as $client) {
            if ($client !== $from) {
                $client->send($message);
            }
        }
    }

    public function sendPrivateMessage($from, $recipient, $message)
    {
        foreach ($this->clients as $client) {
            if ($client->username == $recipient) {
                $client->send($message);
                $from->send($message);
                break;
            }
        }
    }
}

$server = IoServer::factory(
    new HttpServer(
        new WsServer(
            new Chat()
        )
    ),
    8080
);

$server->run();
ログイン後にコピー

上記のコードでは、接続、メッセージの送信、接続の終了などの操作を処理する Chat という名前のクラスを作成しました。 onMessage メソッドでは、メッセージ タイプに基づいてさまざまな操作を実行します。タイプが register の場合は、ユーザー登録接続があることを意味します。タイプが group の場合は、グループ メッセージを送信しているユーザーがいることを意味します。タイプが ## の場合は、ユーザー登録接続があることを意味します。 #、プライベート メッセージを送信するユーザーがいることを意味します。グループ メッセージをブロードキャストするには broadcastMessage メソッドを使用し、プライベート メッセージを送信するには sendPrivateMessage メソッドを使用します。

次に、

index.html というファイルを作成し、その中に次のコードを記述します。

<!DOCTYPE html>
<html>
<head>
    <title>Chat</title>
</head>
<body>
    <input type="text" id="username" placeholder="Username"><br>
    <input type="text" id="message" placeholder="Message"><br>
    <button onclick="register()">Register</button>
    <button onclick="sendGroupMessage()">Send Group Message</button>
    <button onclick="sendPrivateMessage()">Send Private Message</button>

    <script>
        var conn = new WebSocket('ws://localhost:8080');

        conn.onopen = function(e) {
            console.log("Connection established!");
        };

        conn.onmessage = function(e) {
            var chatbox = document.getElementById("chatbox");
            chatbox.innerHTML += e.data + "<br>";
        };

        function register() {
            var username = document.getElementById("username").value;
            var data = {
                type: 'register',
                username: username
            };
            conn.send(JSON.stringify(data));
        }

        function sendGroupMessage() {
            var message = document.getElementById("message").value;
            var data = {
                type: 'group',
                message: message
            };
            conn.send(JSON.stringify(data));
        }

        function sendPrivateMessage() {
            var recipient = document.getElementById("username").value;
            var message = document.getElementById("message").value;
            var data = {
                type: 'private',
                recipient: recipient,
                message: message
            };
            conn.send(JSON.stringify(data));
        }
    </script>
</body>
</html>
ログイン後にコピー
上記のコードでは、WebSocket の接続と登録を作成します。接続コールバック関数。

register 関数では、登録のためにユーザー名をサーバーに送信します。 sendGroupMessage 関数では、グループ メッセージをサーバーに送信し、サーバーはメッセージをすべてのユーザーにブロードキャストします。 sendPrivateMessage 関数では、指定されたユーザーにプライベート メッセージを送信します。

これで、ターミナルで

php server.php コマンドを実行してサーバーを起動できます。次に、ブラウザで index.html ファイルを開き、ユーザー名を入力して登録ボタンをクリックします。次に、メッセージを入力して送信ボタンをクリックすると、グループ チャットまたはプライベート チャットを行うことができます。サーバーは、対応するメッセージを他のユーザーにブロードキャストするか、指定されたユーザーに送信します。

概要:

この記事では、PHP と WebSocket を使用してリアルタイム チャット システムを開発し、グループ チャットとプライベート チャット機能を実装する方法を紹介します。 WebSocket サーバーを作成して通信することで、他のユーザーからのメッセージをリアルタイムで送受信できるようになります。簡単なコード例を使用して、基本的なリアルタイム チャット システムを実装しました。コードを拡張することで、ユーザー認証の追加やチャット記録の保存など、より多くの機能を実装できます。

以上がPHPベースのリアルタイムチャットシステムのグループチャットおよびプライベートチャット機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

ホストは Tencent ミーティングでプライベート チャット メッセージを見ることができますか? ホストは Tencent ミーティングでプライベート チャット メッセージを見ることができますか? Feb 18, 2024 am 11:12 AM

Tencent Meeting のプライベート チャットはホストに表示されますか? リモートワークやオンライン会議の台頭により、さまざまなビデオ会議ツールの人気が高まっています。中国の主要なビデオ会議ツールの 1 つとして、Tencent Conference は常に大きな注目を集めています。重要な機能の 1 つはプライベート チャットで、参加者は会議中にプライベートに通信できます。しかし、プライベートチャットの内容がモデレーターに見られるか心配する人も多いでしょう。この記事では、Tencent の会議プライベート チャット機能のメカニズムを分析し、この質問に答えます。まず、Tencent 会議のプライベート チャットの基本操作を理解する必要があります。

Tencent Conference のプライベート チャットの主催者はそれを見ることができますか? Tencent Conference のプライベート チャットの主催者はそれを見ることができますか? Feb 20, 2024 pm 04:06 PM

Tencent Conference Private Chat のホストはそれを見ることができますか? テクノロジーの発展に伴い、オンライン会議は現代人にとって仕事、勉強、コミュニケーションを図るための重要な方法となっています。数あるオンライン会議プラットフォームの中でも、Tencent Conferenceは安定性、使いやすさ、豊富な機能でユーザーに人気です。 Tencent 会議を開催する場合、プライベート チャットやホスト (または他の参加者) とのプライベートなコミュニケーションが必要になる場合があります。では、Tencent の会議でプライベート チャットを行う場合、ホストはプライベート チャットの内容を見ることができるのでしょうか?これは多くのユーザーが懸念している質問です。まず、私は

Xianyu でプライベートにチャットする方法? 販売者とプライベートにチャットする方法のリスト Xianyu でプライベートにチャットする方法? 販売者とプライベートにチャットする方法のリスト Mar 12, 2024 pm 03:00 PM

このプラットフォームを使用すると、特に欲しい製品の詳細がわかっている場合、プライベートにチャットできるため、誰もがより良い選択をすることができます。これらの方法は比較的簡単なので、心配しないでください、パニックにならないでください。いくつかのプライベート チャット方法は比較的シンプルです。通常、これらの方法は商品やお買い得品の詳細を理解するために直接使用されますが、ユーザーの問題を解決するためにも使用されます。あらゆる種類の疑問は、対応するコンテンツの選択肢を提供するためでもあります。今日は編集者がプライベート チャットの方法を説明します。まだ知らない友達は見逃さないでください。急いで編集者と一緒に見てください。お見逃しなく。​

TikTokプライベートチャットの削除された記録を復元する方法 TikTokプライベートチャットの削除された記録を復元する方法 May 07, 2024 am 11:00 AM

1. Douyin プライベート メッセージのチャット履歴を削除した後、通常は直接復元することはできません。 2. ただし、Douyin 担当者に連絡して、回復の可能性について伝えることができます。 3. Douyin アプリを開き、「Me」ページに入り、右上隅にある 3 本の水平バーをクリックし、「設定」 > 「Douyin について」を選択します。 4.「カスタマーサービスホットライン」を見つけて電話するか、公式メールでDouyin公式に連絡し、チャット記録の復元の可能性について問い合わせてください。

PHPを利用してリアルタイムチャット機能の行動ログと操作記録を実装する PHPを利用してリアルタイムチャット機能の行動ログと操作記録を実装する Aug 26, 2023 pm 06:34 PM

PHP を使用してリアルタイム チャット機能を実装するための行動ログと操作記録 はじめに: リアルタイム チャット機能は、多くの Web サイトやアプリケーションの標準機能の 1 つとなっています。ただし、チャット システムの安定性とセキュリティを確保するには、トラブルシューティングやユーザー追跡のためにユーザーの行動や操作を記録する必要があります。この記事では、PHPを使ってリアルタイムチャット機能の行動ログや操作記録を実装する方法を紹介します。簡単な例を使用して、具体的な実装プロセスを説明します。ステップ 1: データベースをセットアップする まず、行動ログを保存するためのデータベースを作成する必要があります。

PHP を使用して、リアルタイム チャット機能のスケジュールされたメッセージとスケジュールされたタスクを実装します。 PHP を使用して、リアルタイム チャット機能のスケジュールされたメッセージとスケジュールされたタスクを実装します。 Aug 26, 2023 am 09:28 AM

PHP を使用して、リアルタイム チャット機能のスケジュールされたメッセージとスケジュールされたタスクを実装します。インターネットの急速な発展に伴い、リアルタイム コミュニケーションは人々にとって重要なコミュニケーション手段になりました。ユーザーのインタラクティブなエクスペリエンスを豊かにするために、多くの Web サイトやアプリケーションにリアルタイム チャット機能が追加されています。この記事では、PHPを使用して、リアルタイムチャット機能にスケジュールされたメッセージやスケジュールされたタスクを実装する方法を紹介します。 1. スケジュールされたメッセージの実装 スケジュールされたメッセージとは、指定された時点で指定されたユーザーにメッセージを送信することを指します。 PHP ではタイマーを使用してこの機能を実現できます。以下は簡単なサンプルコードです

Zhuanzhuan で販売者にプライベート メッセージを送信する方法 Zhuanzhuan で販売者にプライベート メッセージを送信する方法 Zhuanzhuan で販売者にプライベート メッセージを送信する方法 Zhuanzhuan で販売者にプライベート メッセージを送信する方法 Mar 26, 2024 am 09:41 AM

ここの機能は非常に強力で、アカウントに直接ログインして使用できます。製品の種類が豊富なので、自由に選択してお気に入りの宝物を見つけることができます。もちろん、自分のものもありますまた、未使用品を販売用に公開することもできます。これは非常に便利で、あらゆるニーズを満たすことができます。もちろん、より良い商品を見つけたら、販売者にプライベート メッセージを送信して、商品について話し合うこともできます。これらの商品をより良く手に入れるのに役立ちます。販売者にプライベート メッセージを送信する方法がわからない友人のために、次の方法を見てみましょう。 Zhuanzhuan で販売者にプライベート メッセージを送信する方法: 1. まず Zhuanzhuan を開きます。 2. 検索ボックスをクリックし、ユーザーのニックネームを入力し、ユーザーを確認して検索します。 3. 個人のホームページを入力します。

PHPを使用して匿名チャットとリアルタイムチャットの暗号化通信機能を実装 PHPを使用して匿名チャットとリアルタイムチャットの暗号化通信機能を実装 Aug 14, 2023 pm 04:34 PM

PHPを活用し、匿名チャットやリアルタイムチャットの暗号化通信を実現 インターネットの発展に伴い、人と人とのコミュニケーションのあり方も大きく変わりました。中でも、ライブチャット機能はますます人気のあるコミュニケーション手段となっています。多くの Web サイトでは、匿名チャット機能を提供することでより多くのユーザーを参加させることができますが、ユーザー情報のセキュリティとプライバシーも考慮する必要があります。この記事では、PHP を使用して匿名チャットとリアルタイム チャット機能の暗号化送信を実装する方法を説明し、参考用のコード サンプルを提供します。 1.匿名チャットはAnonymousに実装されています

See all articles