ホームページ >バックエンド開発 >PHPチュートリアル >PHP で WebSocket API を使用してリアルタイム Web アプリケーションを実装する方法
インターネット技術の発展に伴い、リアルタイム Web アプリケーションはますます一般的な開発方法になりました。全二重通信プロトコルとしての WebSocket は、リアルタイム Web アプリケーションを実装するための重要な方法となっており、PHP は開発者の使用を容易にする WebSocket API も提供しています。この記事では、PHP で WebSocket API を使用してリアルタイム Web アプリケーションを実装する方法を紹介します。
1. WebSocket の概要
WebSocket は、単一の TCP 接続上で全二重通信を提供するプロトコルで、Web アプリケーションがクライアントとサーバー間でリアルタイム データを通信できるようにします。 HTTP プロトコルと比較して、WebSocket は遅延が短く、データ送信時のハンドシェイクが少ないため、よりリアルタイムな Web アプリケーションが可能になります。
2. PHP で WebSocket API を使用してリアルタイム Web アプリケーションを実装する
PHP WebSocket は ReactPHP に基づいているため、以下が必要です最初に ReactPHP をインストールするには :
composer require react/socket:^1.11.0 react/event-loop:^1.1.0
以下は簡単な PHP WebSocket サービス コードです:
use ReactSocketConnectionInterface; use ReactSocketServer; require __DIR__ . '/vendor/autoload.php'; $loop = ReactEventLoopFactory::create(); $socket = new Server('localhost:8080', $loop); $clients = new SplObjectStorage(); $socket->on('connection', function (ConnectionInterface $conn) use ($clients) { $clients->attach($conn); $conn->on('data', function ($data) use ($clients, $conn) { foreach ($clients as $client) { if ($conn !== $client) { $client->write($data); } } }); $conn->on('close', function () use ($clients, $conn) { $clients->detach($conn); }); }); $loop->run();
このコードは WebSocket サービスを作成しますこれをリッスンするのはマシンのポート 8080 です。クライアントが接続したら、クライアント オブジェクトを SplObjectStorage オブジェクトに保存します。データ送信がある場合は、送信者以外の他のクライアントにデータを送信します。クライアントが切断したら、SplObjectStorage からクライアント オブジェクトを削除します。
上記のコードを server.php
ファイルとして保存し、コマンド php server.php## を実行します。 # WebSocket サーブを開始します。この時点で、WebSocket サービスはすでにローカル ポート 8080 で実行されており、クライアント接続を受け入れることができます。
use ReactEventLoopFactory; use ReactSocketConnector; use ReactSocketConnectionInterface; require __DIR__ . '/vendor/autoload.php'; $loop = Factory::create(); $connector = new Connector($loop); $connector->connect('tcp://127.0.0.1:8080')->then(function (ConnectionInterface $conn) use ($loop) { $conn->on('data', function ($data) { echo $data; }); $loop->addReadStream(STDIN, function () use ($conn) { $line = fgets(STDIN); $conn->write($line); }); }, function (Exception $e) { echo 'Could not connect: ' . $e->getMessage() . PHP_EOL; }); $loop->run();このコードは WebSocket クライアントを作成し、WebSocket クライアントのポート 8080 に接続します。この機械。データ送信がある場合は、コンソールにデータが出力されます。コンソール入力を読み取るときに、入力を WebSocket サーバーに送信します。
client.php ファイルとして保存し、コマンド
php client.php## を実行します。 # WebSocket クライアントを起動します。この時点で、WebSocket クライアントはローカル WebSocket サーバーに接続しました。
を実行して、リアルタイム通信の効果をテストできます。 3. 概要
WebSocket API は、リアルタイム Web アプリケーションを簡単に実装できる WebSocket を PHP に実装する方法を提供します。この記事では、PHP で WebSocket API を使用してリアルタイム Web アプリケーションを実装する方法を紹介し、WebSocket の概要、WebSocket サービスの作成、WebSocket クライアントの作成、WebSocket 通信のテストについて説明します。
以上がPHP で WebSocket API を使用してリアルタイム Web アプリケーションを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。