ホームページ >PHPフレームワーク >Swoole >swooleでWSを開く方法

swooleでWSを開く方法

(*-*)浩
(*-*)浩オリジナル
2019-12-16 10:22:432707ブラウズ

swooleでWSを開く方法

WebSocket (ws) は、html5 に追加された新しい通信プロトコルです。現在、Chrome、Safrie、Firefox、Opera、IE などの一般的なブラウザがこのプロトコルをサポートしています。など、このプロトコルの最も早いサポートは chrome である必要があります。chrome12 以降サポートされています。プロトコルのドラフトは変更され続けるため、各ブラウザのプロトコルの実装も常に更新されます。 (推奨学習: swoole ビデオ チュートリアル )

swoole 1.7.9 では、組み込みの WebSocket サーバー サポートが追加されており、いくつかのメソッドで非同期のノンブロッキング マルチプロセスを作成できます。 PHP コードの行 WebSocket サーバー。

$server = new Swoole\WebSocket\Server("0.0.0.0", 9501);
$server->on('open', function (Swoole\WebSocket\Server $server, $request) {
    echo "server: handshake success with fd{$request->fd}\n";
});
$server->on('message', function (Swoole\WebSocket\Server $server, $frame) {
    echo "receive from {$frame->fd}:{$frame->data},opcode:{$frame->opcode},fin:{$frame->finish}\n";
    $server->push($frame->fd, "this is server");
});
$server->on('close', function ($ser, $fd) {
    echo "client {$fd} closed\n";
});
$server->start();

Swoole\Server および Swoole\Http\Server 基本クラスのコールバック関数の受信に加えて、WebSocket サーバーは 3 つの追加のコールバック関数設定を追加します。 その中に:

onMessage コールバック関数は必須です

onOpen および onHandShake コールバック関数はオプションです

WebSocket\Server は Server のサブクラスであるため、すべてServer のメソッドを呼び出すことができます。

WebSocket サーバーは、WebSocket\Server::push メソッドを使用してクライアントにデータを送信する必要があることに注意してください。このメソッドは、WebSocket プロトコルをパッケージ化します。 Server::send メソッドは、オリジナルの TCP 送信インターフェイスです。

WebSocket\Server::disconnect メソッドは、サーバーから WebSocket 接続をアクティブに閉じ、ステータス コードを指定できます (WebSocket プロトコルによれば、使用可能なステータス コードは 10 進整数で、値は 1000 です)または 4000 -4999) と終了の理由 (UTF-8 でエンコードされ、長さが 125 バイト以下の文字列)。

指定しない場合、ステータス コードは 1000 になり、シャットダウン理由は空になります。

以上がswooleでWSを開く方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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