技術の継続的な発展により、リアルタイム メッセージ プッシュは Web アプリケーションの重要な機能の 1 つになりました。 WebSocket は、新興テクノロジーとして、リアルタイム メッセージ プッシュの主流テクノロジーの 1 つになりました。この記事では、PHP で WebSocket API を使用してリアルタイムのメッセージ プッシュを行う方法を説明します。
1. WebSocket とは
WebSocket は新しいタイプのネットワーク通信プロトコルで、TCP プロトコルをベースにした双方向通信方式です。クライアントとサーバーの間に永続的な接続チャネルを確立し、このチャネル上で双方向通信を実行して、リアルタイムのメッセージ プッシュを実現できます。従来の HTTP プロトコルと比較して、WebSocket は遅延が短く、リアルタイム パフォーマンスが高くなります。
2. PHP で WebSocket API を使用する方法
PHP で WebSocket API を使用するには、WebSocket プラグインを導入する必要があります。一般的に使用される WebSocket プラグインには、phpwebsocket や Ratchet などがあります。この記事では、phpwebsocket を例として、WebSocket API を使用してリアルタイム メッセージ プッシュを行う方法について説明します。
phpwebsocket は、RFC6455 および Hybi-10 プロトコルをサポートする PHP ベースの WebSocket 実装ライブラリです。使用する前に、phpwebsocketをダウンロードしてインストールする必要があります。 phpwebsocket の最新バージョンは、phpwebsocket 公式 Web サイトからダウンロードするか、composer を使用してインストールできます。
composer require cboden/ratchet
phpwebsocket を使用する場合リアルタイムメッセージプッシュ、サーバープログラムを作成する必要があります。 WebSocket クラスを継承してサーバー プログラムを作成できます。コードは次のとおりです:
require_once('WebSocket.php'); class MyWebSocket extends WebSocket { public function process($client, $message) { // 处理消息 } public function connected($client) { // 处理连接 } public function closed($client) { // 处理关闭 } }
require_once('MyWebSocket.php'); $server = new MyWebSocket("127.0.0.1", 8080); try { $server->run(); } catch (Exception $e) { $server->stdout($e->getMessage()); }
var socket = new WebSocket("ws://localhost:8080"); socket.onopen = function() { // 连接成功 }; socket.onmessage = function(event) { // 服务器发送消息 }; socket.onclose = function() { // 连接关闭 }; // 发送消息 socket.send('Hello, World!');
3. リアルタイム メッセージ プッシュの実装
リアルタイム メッセージ プッシュに WebSocket API を使用する場合は、次の点を考慮する必要があります。
単一クライアントへのメッセージのプッシュ
$this->send($client, $message);
foreach ($this->clients as $client) { $this->send($client, $message); }
// 定义消息组 $group = array(); // 将客户端加入到消息组中 $group[$client->id] = $client; // 群发消息 foreach ($group as $member) { $this->send($member, $message); }
以上がPHP で WebSocket API を使用してリアルタイム メッセージ プッシュを行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。