Swoole を使用して高性能 Websocket クライアントを実装する方法

PHPz
リリース: 2023-06-25 10:06:13
オリジナル
1898 人が閲覧しました

Web アプリケーションでのリアルタイム通信テクノロジの使用が増えるにつれ、Websocket は必須のテクノロジの 1 つになりました。 Swoole は、開発者が高性能の Web アプリケーションを構築するのに役立つ PHP 拡張機能です。この記事では、Swoole を使用して高パフォーマンスの Websocket クライアントを実装する方法を紹介します。

  1. Swoole 拡張機能のインストール

Swoole の使用を開始する前に、PHP に Swoole 拡張機能をインストールする必要があります。次のコマンドを使用して Swoole 拡張機能をインストールできます。

pecl install swoole
ログイン後にコピー
  1. Websocket クライアントの作成

Swoole を使用して Websocket クライアントを作成するのは非常に簡単です。 Websocket クライアントは、次を使用して作成できます。

<?php

$cli = new swoole_websocket_client('ws://127.0.0.1:9501');

$cli->on('open', function (swoole_websocket_client $cli) {
    echo "Connected
";
    $cli->send('Hello, world!');
});

$cli->on('message', function (swoole_websocket_client $cli, $message) {
    echo "Received: $message
";
    $cli->close();
});

$cli->on('close', function (swoole_websocket_client $cli) {
    echo "Connection closed
";
});

$cli->connect();
ログイン後にコピー

上記のコードでは、swoole_websocket_client クラスを使用して Websocket クライアントを作成しました。サーバーのIPアドレスとポート番号を指定します。 openmessage、および close イベントをバインドしました。 open イベントでメッセージを送信します。 message イベントでは、受信したメッセージを出力し、Websocket 接続を閉じます。

  1. 非同期リクエストを送信する

Swoole を使用すると、非同期リクエストを送信し、応答を待つことができます。 CoroutineClient クラスを使用して非同期リクエストを送信し、レスポンスを処理する方法の例を次に示します。

<?php

use SwooleCoroutineClient;

co(function () {
    $cli = new Client(SWOOLE_TCP);
    if ( !$cli->connect('127.0.0.1', 9501) ) {
        exit('connect failed');
    }

    $data = '{"name":"John","age":30}';
    $cli->send($data);

    $response = $cli->recv();
    echo $response;

    $cli->close();
});
ログイン後にコピー

上記のコードでは、CoroutineClient# を使用してクライアントを作成しました。 ## クラス。サーバーに接続し、JSON 形式のメッセージを送信します。サーバーが応答するのを待ち、応答を出力します。最後に、Websocket 接続を閉じます。

    サポート SSL
Swoole は SSL 接続もサポートしています。次のコードは、SSL を使用して Swoole Websocket クライアントに接続する方法を示しています。

<?php

$cli = new swoole_websocket_client('wss://127.0.0.1:9502', true);

$cli->on('open', function (swoole_websocket_client $cli) {
    echo "Connected
";
    $cli->send('Hello, world!');
});

$cli->on('message', function (swoole_websocket_client $cli, $message) {
    echo "Received: $message
";
    $cli->close();
});

$cli->on('close', function (swoole_websocket_client $cli) {
    echo "Connection closed
";
});

$cli->connect();
ログイン後にコピー
上記のコードでは、Websocket クライアントへの SSL 接続を作成し、サーバーの IP アドレスとポート番号を指定します。

true パラメーターを使用して、クライアントの接続モードをデフォルトからセキュア接続モードに変更します。

    概要
Swoole は、高パフォーマンスの Web アプリケーションの構築に役立つ強力な PHP 拡張機能です。 Swoole を使用すると、Websocket クライアントを簡単に作成し、非同期リクエストを送信し、SSL 接続をサポートできます。このため、Swoole はリアルタイム通信 Web アプリケーションを構築するのに最適な選択肢となります。

以上がSwoole を使用して高性能 Websocket クライアントを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート