WebSocketは、TCPプロトコルに基づく全二重通信プロトコルであり、クライアントとサーバーの間の永続的な接続を確立して、リアルタイムの双方向データ送信を実現できます。 Web開発では、WebSocketを使用して、リアルタイムチャット、データ表示、その他の機能を実装できます。この記事では、PHPを使用してWebSocket機能を開発し、特定の例を通じて実装プロセスを実証する方法を詳細に紹介します。
PHPでWebSocket機能を使用する場合、次の条件を満たす必要があります。
以下は、特定の関数を実装するための詳細なプロセスです。
まず、Websocketサーバーを作成し、指定されたポートを聴き、クライアントの接続、メッセージ、その他のイベントを処理する必要があります。 Swoole Extensionが提供するSwoolebebsocketserverクラスを使用して実装できます。簡単な例を次に示します。
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $server->on( 'open'、function($ server、$ request){ echo "新しいしい接続:{$ request-> fd} \ n"; }); $ server-> on( 'message'、function($ server、$ frame){ $ server-> push($ frame-> fd、 "server受信:{$ frame-> data}"); }); $ server-> on( 'close'、function($ server、$ fd){ echo "接続が近いじられた:{$ fd} \ n"; }); $ server-> start();
上記のコードは、ポート8080に耳を傾けるWebsocketサーバーを作成します。新しい接続があるときはいつでも、接続IDが印刷されます。メッセージが受信されると、メッセージがクライアントに送信されます。接続が閉じられると、接続IDが印刷されます。
Websocketサーバーで特定の機能を処理する場合、ビジネスニーズに応じて開発を実行できます。次の例では、単純なライブチャット関数を実装しています。
<?php $server = new SwooleWebSocketServer('0.0.0.0', 8080); $connections = []; $server->on( 'open'、function($ server、$ request)use(&$ connections){ $ connections [$ request-> fd] = $ request-> fd; echo "新しいしい接続:{$ request-> fd} \ n"; }); $ server-> on( 'message'、function($ server、$ frame)use(&$ connections){ foreach($ connections as $ fd){ $ server-> push($ fd、 "user {$ frame-> fd} says:{$ frame-> data}"); } }); $ server-> on( 'close'、function($ server、$ fd)use(&$ connections){ unset($ connections [$ fd]); echo "接続が近いじられた:{$ fd} \ n"; }); $ server-> start();
このコードでは、接続がオンになると、接続のIDが配列に保存されます。メッセージが受信されると、メッセージはすべての接続されたクライアントに送信されます。接続が閉じられると、対応する接続IDが配列から削除されます。
開発環境が完了した後、ブラウザまたは他のツールを介してWebSocket接続とメッセージ送信を実行できます。 JavaScriptを使用してメッセージを接続および送信する例は次のとおりです。
var ws = new WebSocket( 'ws:// localhost:8080'); ws.onopen = function(){ console.log( 'connected'); }; ws.onmessage = function(event){ console.log( '受信:' + event.data); }; ws.onclose = function(){ console.log( 'disconnected'); }; ws.send( 'こんにちは、websocket!');
このコードはWebSocket接続を作成し、接続の開口部、メッセージ受信、接続の閉鎖などのイベントを処理します。送信方法を介して、メッセージをサーバーに送信できます。
この記事では、PHPを使用してWebSocket関数を開発する方法を詳細に紹介し、実際にライブチャット関数を使用して説明します。 Websocketテクノロジーを通じて、開発者はリアルタイムの双方向データ送信を実現して、ユーザーエクスペリエンスを向上させることができます。この記事が、読者がPHP Websocketテクノロジーを理解して適用するのに役立つことを願っています。