ホームページ  >  記事  >  バックエンド開発  >  すぐに始めましょう: PHP WebSocket 関数の開発と実装に関するチュートリアル

すぐに始めましょう: PHP WebSocket 関数の開発と実装に関するチュートリアル

王林
王林オリジナル
2023-09-12 12:34:441281ブラウズ

快速上手:PHP WebSocket开发实现功能的教程

クイック スタート: PHP WebSocket の開発と実装に関するチュートリアル

はじめに:
WebSocket は、リアルタイム通信のためのオープン標準プロトコルであり、ブラウジング サーバーとサーバーの間に永続的な接続を確立して、双方向通信を実現します。 Web 開発では、WebSocket はリアルタイム チャット、リアルタイム通知、複数人によるコラボレーション、その他のシナリオで広く使用されています。この記事では、PHP を使用して WebSocket アプリケーションを開発し、機能を迅速に実装する方法を紹介します。

1.WebSocket とは何ですか?
WebSocket は、単一の TCP 接続での全二重通信用のプロトコルであり、HTTP プロトコルのハンドシェイク フェーズ中に永続的な接続を確立することで、サーバーがクライアントにメッセージをアクティブに送信できるようになります。従来の HTTP リクエストと比較して、WebSocket はより効率的でリアルタイムです。

2. PHP WebSocket 開発環境の構築
PHP WebSocket を開発するには、対応する環境を構築する必要があります。まず、コンピュータに PHP 環境がインストールされていることを確認します。次に、Composer を介して Ratchet ライブラリをインストールします。Ratchet は PHP 用に公式に推奨される WebSocket ライブラリであり、一連の使いやすいクラスとメソッドを提供します。

  1. Composer のインストール: https://getcomposer.org/ にアクセスして Composer をダウンロードしてインストールします。
  2. プロジェクト ディレクトリの作成: 任意のディレクトリにプロジェクトのルート ディレクトリとして新しいフォルダーを作成します。
  3. Composer プロジェクトを初期化します。コマンド ラインでプロジェクトのルート ディレクトリに切り替え、コマンド composer init を実行し、プロンプトに従ってプロジェクト情報を入力します。
  4. Ratchet のインストール: コマンド ラインでコマンド composer require cboden/ratchet を実行します。Composer は、Ratchet ライブラリとその依存関係を自動的にダウンロードしてインストールします。

3. 単純な WebSocket サーバーの実装
セットアップされた開発環境で、WebSocket サーバーのコードの作成を開始できます。

  1. 「server.php」という名前の新しい PHP ファイルを作成します。
  2. Ratchet ライブラリ関連ファイルを導入します: ファイルの先頭に次のコードを追加します:

    <?php
    require __DIR__.'/vendor/autoload.php';
    use RatchetMessageComponentInterface;
    use RatchetConnectionInterface;
  3. WebSocket サーバー クラスを実装します: 次のコードをファイルに追加します。ファイル:

    class MyWebSocketServer 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) {
         $numRecv = count($this->clients) - 1;
         echo sprintf('Connection %d sending message "%s" to %d other connection%s'."
    ",
         $from->resourceId, $msg, $numRecv, $numRecv == 1 ? '' : 's');
    
         foreach ($this->clients as $client) {
             if ($from !== $client) {
                 $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 has occurred: {$e->getMessage()}
    ";
         $conn->close();
     }
    }
    
  4. WebSocket サーバーを開始します: ファイルの最後に次のコードを追加します:

    use RatchetServerIoServer;
    use RatchetHttpHttpServer;
    use RatchetWebSocketWsServer;
    
    $server = IoServer::factory(
     new HttpServer(
         new WsServer(
             new MyWebSocketServer()
         )
     ),
     8080
    );
    $server->run();

4. WebSocket を実行しますserver
コマンドラインに「server.php」と入力し、コマンドphpserver.phpを実行します。すべてが正しく構成されていれば、サーバーが正常に起動したことがわかります。

5. WebSocket クライアントの作成
作成した WebSocket サーバーをテストするには、単純な WebSocket クライアントを作成する必要があります。

  1. 「client.html」という名前の新しい HTML ファイルを作成します。
  2. 次のコードを HTML ファイルに追加します:

    <!DOCTYPE html>
    <html>
    <head>
     <title>WebSocket Client</title>
    </head>
    <body>
     <script>
         var ws = new WebSocket("ws://localhost:8080");
    
         ws.onopen = function() {
             console.log("WebSocket connection established.");
         };
    
         ws.onmessage = function(evt) {
             var receivedMsg = evt.data;
             console.log("Received message: " + receivedMsg);
         };
    
         ws.onclose = function() {
             console.log("WebSocket connection closed.");
         };
     </script>
    </body>
    </html>

6. テスト実行
書き込んだ「client.html」ファイルをブラウザに配置します。で開きます。また、WebSocket サーバーも実行したままにしてください。これで、確立された WebSocket 接続と受信したメッセージに関する情報がコンソールに出力されるはずです。

7. 拡張機能
上記の手順により、基本的な PHP WebSocket の開発と、基本的なメッセージ送受信機能の実装が完了しました。ユーザー認証、ルーム管理、データ通信の暗号化など、必要に応じてサーバーおよびクライアントの機能をさらに拡張できます。

結論:
この記事では、PHP を使用して WebSocket アプリケーションを開発する方法を簡単に紹介し、環境のセットアップ、サーバー コードの作成、サーバーの実行、および書き込みなどの手順を通じて簡単な WebSocket チャット機能を実装します。クライアント。この記事の内容を学習して理解することで、PHP WebSocket 開発をすぐに開始し、そのリアルタイム通信機能を使用してより多くの機能やアプリケーションを実現できるようになります。

以上がすぐに始めましょう: PHP WebSocket 関数の開発と実装に関するチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。