PHP を使用して Websocket を開発し、インスタント チャット機能を実装する
Websocket は全二重通信プロトコルであり、インスタント チャットやインスタント チャットなどのリアルタイム通信シナリオに適しています。リアルタイムのデータ更新が待機します。人気のサーバーサイド プログラミング言語である PHP は、関連するライブラリや拡張機能を通じて Websocket 関数を実装することもできます。今回は、PHPを使ってWebsocketを開発する方法を紹介します(具体的なコード例は以下の通り)。
まず、サーバーが Websocket プロトコルをサポートしていることを確認する必要があります。 PHP では、Ratchet ライブラリを使用して Websocket サーバーを実装できます。 Ratchet は、ReactPHP をベースとしたシンプルかつ柔軟な操作インターフェイスを提供するライブラリです。
Composer を使用して Ratchet ライブラリをインストールします。プロジェクト ディレクトリで次のコマンドを実行できます:
composer require cboden/ratchet
server.php という名前のファイルをプロジェクトのルート ディレクトリに作成し、次のコードを記述します。
<?php require __DIR__.'/vendor/autoload.php'; use RatchetMessageComponentInterface; use RatchetConnectionInterface; use RatchetServerIoServer; use RatchetHttpHttpServer; use RatchetWebSocketWsServer; 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) { foreach ($this->clients as $client) { if ($client !== $from) { $client->send($msg); } } } 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 occurred: {$e->getMessage()} "; $conn->close(); } } $server = IoServer::factory( new HttpServer( new WsServer( new Chat() ) ), 8080 ); echo "Server running at http://localhost:8080 "; $server->run();
コマンド ラインでプロジェクトのルート ディレクトリを入力し、次のコマンドを実行して Websocket サーバーを起動します:
php -f server.php
この時点で、Websocket サーバーは起動されており、ポート 8080 でリッスンしています。 http://localhost:8080 を通じてアクセスできます。
index.html という名前のファイルをプロジェクト ディレクトリに作成し、次のコードを記述します。ブラウザでindex.htmlファイルを開くと、メッセージを送信するための入力ボックスとボタンが表示されます。入力ボックスにメッセージを入力し、「送信」ボタンをクリックしてメッセージをサーバーに送信します。
テスト プログラムこれまでのところ、インスタント チャット機能を実装するための、PHP を使用した単純な Websocket サーバーの開発に成功しました。 Ratchet ライブラリのカプセル化により、複雑な Websocket アプリケーションを迅速に実装できます。この記事があなたのお役に立てれば幸いです。また、プログラミングが楽しくなることを願っています。
以上がインスタントチャット機能を実装するためのWebSocketをphpで開発するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。