インターネットの発展に伴い、WebSocket テクノロジはますます広く使用されるようになりました。 WebSocket テクノロジーは双方向のリアルタイム通信を実現でき、インスタント メッセージングやゲームなどの一部のアプリケーション シナリオに適しており、より優れたユーザー エクスペリエンスを提供できます。この記事では、PHPを使用してWebSocketサービスを実装する方法を紹介します。
1. WebSocket の概要
WebSocket は HTML5 で提案された新しいプロトコルです. 単一の TCP 接続で全二重通信を行うためのプロトコルです. リアルタイム通信をサポートし, HTTP よりも遅延が低いです. . 大量のデータ送信を実行できます。 WebSocket を使用すると、サーバーのオーバーヘッドを削減し、ネットワーク帯域幅を節約しながら、リアルタイム通信を実現できます。
2. WebSocket 実装方法
(1)WebSocket サーバーの作成:
// 创建WebSocket服务器 $server = new swoole_websocket_server("0.0.0.0", 9502); // 监听WebSocket连接事件 $server->on('open', function (swoole_websocket_server $server, $request) { echo "client {$request->fd} connected "; }); // 监听WebSocket消息事件 $server->on('message', function (swoole_websocket_server $server, $frame) { // 处理接收到的消息 $message = "server received message: {$frame->data} "; // 向WebSocket客户端发送消息 $server->push($frame->fd, $message); }); // 监听WebSocket关闭事件 $server->on('close', function (swoole_websocket_server $server, $fd) { echo "client {$fd} closed "; }); // 启动WebSocket服务器 $server->start();
(2)サーバープッシュメッセージ:
// 向WebSocket客户端发送消息 $server->push($frame->fd, $message);
(1) WebSocket接続の作成:
// 创建WebSocket连接 var ws = new WebSocket("ws://localhost:9502"); // 监听WebSocket连接事件 ws.onopen = function() { console.log("WebSocket连接已打开"); }; // 监听WebSocket消息事件 ws.onmessage = function(event) { console.log("WebSocket收到消息:" + event.data); }; // 监听WebSocket关闭事件 ws.onclose = function() { console.log("WebSocket连接已关闭"); };
(2) クライアントがメッセージを送信:
// 向WebSocket服务器发送消息 ws.send("hello");
3 . 実装プロセスの詳細説明
以下、上記のコードブロックの各部分を詳しく紹介します。
(1) WebSocket サーバーを作成します:
// 创建WebSocket服务器 $server = new swoole_websocket_server("0.0.0.0", 9502);
このコードは、IP アドレスを 0.0.0.0 として指定して WebSocket サーバーを作成します。ポートは9502です。
(2) WebSocket 接続イベントをリッスンする:
// 监听WebSocket连接事件 $server->on('open', function (swoole_websocket_server $server, $request) { echo "client {$request->fd} connected "; });
WebSocket クライアントが接続されると、「open」イベントがトリガーされます。ここでの $request は、クライアントの IP アドレス、接続時間など、クライアント接続に関する情報を含むオブジェクトです。
(3) WebSocket メッセージ イベントをリッスンする:
// 监听WebSocket消息事件 $server->on('message', function (swoole_websocket_server $server, $frame) { // 处理接收到的消息 $message = "server received message: {$frame->data} "; // 向WebSocket客户端发送消息 $server->push($frame->fd, $message); });
WebSocket クライアントがメッセージを送信すると、「message」イベントがトリガーされます。ここでの $frame は、メッセージの内容、送信時刻など、受信したメッセージに関する情報を含むオブジェクトです。
(4) WebSocket の終了イベントをリッスンします:
// 监听WebSocket关闭事件 $server->on('close', function (swoole_websocket_server $server, $fd) { echo "client {$fd} closed "; });
WebSocket クライアントが接続を閉じると、「close」イベントがトリガーされます。ここでの $fd は、クライアント接続の一意の識別子です。
(5) WebSocket サーバーを起動します:
// 启动WebSocket服务器 $server->start();
start() メソッドを使用して WebSocket サーバーを起動し、クライアント接続とメッセージの監視を開始できるようにします。
(6) サーバー プッシュ メッセージ:
// 向WebSocket客户端发送消息 $server->push($frame->fd, $message);
push() メソッドを使用して、指定されたクライアントにメッセージを送信します。 $frame->fd はクライアント接続の一意の識別子で、$message は送信されるメッセージのコンテンツです。
(1) WebSocket 接続を作成します:
// 创建WebSocket连接 var ws = new WebSocket("ws://localhost:9502");
このコードは、URL を ws:// localhost として指定して、WebSocket 接続を作成します。 :9502。このうち、wsはプロトコルの種類、localhostはWebSocketサーバーのIPアドレス、9502は待ち受けポート番号を表します。
(2) WebSocket 接続イベントをリッスンします:
// 监听WebSocket连接事件 ws.onopen = function() { console.log("WebSocket连接已打开"); };
WebSocket 接続が成功すると、「open」イベントがトリガーされます。ここでは、console.log() メソッドを使用してメッセージを出力します。
(3) WebSocket メッセージ イベントをリッスンする:
// 监听WebSocket消息事件 ws.onmessage = function(event) { console.log("WebSocket收到消息:" + event.data); };
WebSocket クライアントがメッセージを受信すると、「message」イベントがトリガーされます。ここでは、console.log() メソッドを使用してメッセージを出力します。
(4) WebSocket の終了イベントをリッスンします:
// 监听WebSocket关闭事件 ws.onclose = function() { console.log("WebSocket连接已关闭"); };
WebSocket 接続が終了すると、「close」イベントがトリガーされます。ここでは、console.log() メソッドを使用してメッセージを出力します。
(5) クライアントはメッセージを送信します:
// 向WebSocket服务器发送消息 ws.send("hello");
send() メソッドを使用して、WebSocket サーバーにメッセージを送信します。ここでは文字列「hello」を送信します。
4. まとめ
この記事では、PHP を使用して WebSocket サービスを実装する方法を紹介します。 WebSocket テクノロジーは、リアルタイム通信、ゲームなどの分野で広く使用されており、HTTP よりも遅延が低く、より優れたユーザー エクスペリエンスを提供できます。 PHP を使用して WebSocket サービスを実装すると、リアルタイム通信を迅速かつ簡単に実現し、サーバーのオーバーヘッドを削減し、ネットワーク帯域幅を節約できます。
以上がPHPを使用してWebSocketサービスを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。