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 サイトの他の関連記事を参照してください。