ホームページ > PHPフレームワーク > Workerman > 作業員によるオンラインチャット導入の実践事例と経験の共有

作業員によるオンラインチャット導入の実践事例と経験の共有

PHPz
リリース: 2023-09-09 14:48:26
オリジナル
932 人が閲覧しました

作業員によるオンラインチャット導入の実践事例と経験の共有

オンライン チャット導入に関する労働者の実践事例と経験の共有

はじめに: オンライン チャットは、現代のソーシャル ネットワークで非常に一般的な機能の 1 つです。このデジタル時代では、人々は友人、家族、同僚とリアルタイムでコミュニケーションできることを望んでいます。 Workerman は、高性能 PHP 非同期ネットワーク プログラミング フレームワークであり、オンライン チャット機能を実装するためのシンプルで信頼性の高い方法を提供します。この記事では、Workerman フレームワークを使用して基本的なオンライン チャット ルームを構築する方法を紹介し、いくつかの実践的な経験とコード例を共有します。

1. 準備
始める前に、いくつかの環境とツールを準備する必要があります:

  1. PHP をサポートするサーバー (Nginx、Apache など);
  2. PHP および関連拡張機能をインストールして、サーバーが PHP コードを正常に実行できるようにします。
  3. Workerman フレームワークをダウンロードしてインストールします。

2. 基本フレームワークを構築します

  1. コードとリソース ファイルを保存するためにサーバー上に空のフォルダーを作成します;
  2. Workerman を配置しますソースを解凍しますフレームワークのコードをこのフォルダーに追加します。
  3. index.php という名前のファイルをエントリ ファイルとして作成します。

3. サーバー側コードを作成します

  1. index.php ファイルを開き、Workerman フレームワークのオートローダーを導入します:

    require_once __DIR__ . '/Workerman/Autoloader.php';
    ログイン後にコピー
  2. Worker インスタンスを作成し、リスニング ポート番号を設定します:

    use WorkermanWorker;
    
    $ws = new Worker('websocket://0.0.0.0:8000');
    ログイン後にコピー
  3. Worker インスタンスの実行パラメータを設定します:

    $ws->count = 4; // 设置Worker进程数量
    $ws->name = 'ChatRoom'; // 设置Worker名称
    ログイン後にコピー
  4. クライアント接続イベントを処理します。新しいクライアントが接続したときに、それを配列に保存します。

    $ws->onConnect = function($connection) {
     global $ws;
     $ws->clients[$connection->id] = $connection;
    };
    ログイン後にコピー
  5. クライアント切断イベントを処理します。クライアントが切断したときに、配列から削除します。

    $ws->onClose = function($connection) {
     global $ws;
     unset($ws->clients[$connection->id]);
    };
    ログイン後にコピー
  6. クライアント メッセージ イベントを処理し、クライアントがメッセージを送信すると、そのメッセージをすべてのオンライン ユーザーにブロードキャストします:

    $ws->onMessage = function($connection, $data) {
     global $ws;
     foreach ($ws->clients as $client) {
         $client->send($data);
     }
    };
    ログイン後にコピー
  7. 最後に、開始します。 Worker インスタンス:

    Worker::runAll();
    ログイン後にコピー

4. クライアント コードを記述します

  1. index.php ファイルに、チャットを表示する HTML ページを追加します。 room:

    <!DOCTYPE html>
    <html>
    <head>
     <title>在线聊天室</title>
    </head>
    <body>
     <div id="messageContainer">
     </div>
     <input type="text" id="messageInput">
     <button onclick="sendMessage()">发送</button>
     <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
     <script>
         var ws = new WebSocket('ws://your_server_ip:8000');
    
         ws.onmessage = function(event) {
             var message = event.data;
             $("#messageContainer").append("<p>" + message + "</p>");
         };
    
         function sendMessage() {
             var message = $("#messageInput").val();
             ws.send(message);
         }
     </script>
    </body>
    </html>
    ログイン後にコピー
  2. コード内の「your_server_ip」をサーバーの IP アドレスに置き換えます。

5. テストの実行

  1. サーバーを起動し、コードが存在するフォルダーに移動して、次のコマンドを実行します:

    php index.php start
    ログイン後にコピー
  2. ブラウジング中 サーバーのサーバー IP アドレスにアクセスすると、シンプルなチャット ルーム インターフェイスが表示されます。
  3. 別のブラウザ ウィンドウでページを開いてオンライン チャットします。

6. 実践的な経験とコード例

  1. ユーザー認証と権限制御の処理: ユーザーのログイン ステータスの確認など、ユーザーが接続するときに認証ロジックを追加できます。権限など、権限を持ったユーザーのみがトークルームへの入室を許可されます。
  2. プライベートチャット機能: メッセージを送信したい相手を選択し、その人だけがメッセージを受信できるプライベートチャット機能を追加できます。
  3. チャット記録ストレージ: チャット記録は、後続のクエリと分析のためにデータベースに保存できます。
  4. チャット ルーム管理: 管理者機能を追加でき、管理者はユーザーの禁止、ユーザーの追放など、チャット ルームを管理できます。
  5. パフォーマンスの最適化: チャット ルームのサイズが大きい場合は、分散展開と負荷分散を使用して、同時処理機能と安定性を向上させることをお勧めします。

結論: この記事では、Workerman フレームワークを使用して基本的なオンライン チャット ルームを構築する手順を紹介し、いくつかの実践的な経験とコード例を共有します。この記事が興味のある読者に役立つことを願っています。また、ユーザー エクスペリエンスを向上させ、ユーザー情報のセキュリティを保護するために、アプリケーションにさらに多くの機能とセキュリティ対策を追加することを皆さんに思い出していただけることを願っています。

以上が作業員によるオンラインチャット導入の実践事例と経験の共有の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート