ホームページ > 記事 > PHPフレームワーク > Workerman の実践: 高パフォーマンスなオンライン チャット ルームの作成
Workerman の実践的な応用: 高性能オンライン チャット ルームの作成
はじめに:
今日のインターネット時代において、リアルタイムのオンライン チャットは人々の生活に欠かせないものになっています。高性能でリアルタイムのインタラクションに対するユーザーのニーズを満たすには、適切な通信フレームワークを選択することが重要になります。 Workerman は、高性能 PHP 非同期ネットワーク通信フレームワークとして、この需要を満たすことができます。この記事では、Workerman を使用して高パフォーマンスのオンライン チャット ルームを構築する方法とコード例を紹介します。
1. 環境の準備
開始する前に、環境が次の条件を満たしていることを確認してください:
2. チャット ルーム サーバーを作成する
まず、チャット ルーム サーバーを作成する必要があります。 「chat_server.php」という名前のファイルを作成し、次のコードを追加します。
<?php require_once __DIR__ . '/vendor/autoload.php'; use WorkermanWorker; $ws_worker = new Worker("websocket://0.0.0.0:8000"); $ws_worker->count = 4; // 设置启动4个进程 $ws_worker->onConnect = function ($connection) { echo "有新用户连接 "; }; $ws_worker->onMessage = function ($connection, $data) use ($ws_worker) { foreach ($ws_worker->connections as $clientConnection) { $clientConnection->send($data); // 将收到的消息发送给所有连接的客户端 } }; $ws_worker->onClose = function ($connection) { echo "有用户断开连接 "; }; Worker::runAll();
上記のコードを通じて、WebSocket サーバーを作成し、ポート 8000 をリッスンします。新規ユーザーが接続した場合はバックグラウンドに「新規ユーザーが接続しました」、ユーザーが切断した場合はバックグラウンドに「ユーザーが切断しました」と出力されます。 onMessage コールバック関数では、受信したメッセージを接続されているすべてのクライアントに送信します。
3. チャット ルーム クライアントの作成
次に、単純なチャット ルーム クライアントを作成する必要があります。 「chat_client.html」という名前のファイルを作成し、次のコードを追加します。
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>在线聊天室</title> <style> #message { height: 500px; border: 1px solid #ccc; padding: 10px; overflow-y: scroll; } #message p { margin: 5px 0; } #input { margin-top: 10px; } </style> </head> <body> <div id="message"></div> <input type="text" id="input" placeholder="请输入消息"> <button onclick="send()">发送</button> <script> var ws = new WebSocket("ws://localhost:8000"); ws.onopen = function () { console.log("连接成功"); }; ws.onmessage = function (evt) { var message = document.getElementById("message"); message.innerHTML += "<p>" + evt.data + "</p>"; message.scrollTop = message.scrollHeight; // 滚动到底部 }; ws.onclose = function () { console.log("连接关闭"); }; function send() { var input = document.getElementById("input"); var message = input.value; ws.send(message); input.value = ""; } </script> </body> </html>
上記のコードを使用して、単純なチャット ルーム クライアント インターフェイスを作成しました。ユーザーがメッセージを入力して送信ボタンをクリックすると、メッセージがサーバーに送信されます。サーバーがメッセージを受信すると、そのメッセージは onmessage コールバック関数のメッセージ領域に表示され、自動的に下までスクロールします。
4. チャット ルームをテストします
コマンド ラインで次のコマンドを実行してサーバーを起動します:
php chat_server.php start
次に、2 つ以上のブラウザ ウィンドウを開いて、「chat_client.html」にアクセスします。ファイル。さまざまなブラウザ ウィンドウの入力ボックスにメッセージを入力し、送信ボタンをクリックすると、すべてのウィンドウに同じメッセージが表示されます。このようにして、高パフォーマンスのオンライン チャット ルームを作成することに成功しました。
概要:
この記事では、Workerman を使用して高パフォーマンスのオンライン チャット ルームを構築する方法を紹介し、対応するコード例を示します。 Workerman を使用すると、高同時実行性、低遅延のリアルタイム チャット機能を簡単に実装できます。この記事がWorkermanの実践に役立つことを願っています。
以上がWorkerman の実践: 高パフォーマンスなオンライン チャット ルームの作成の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。