ホームページ  >  記事  >  PHPフレームワーク  >  swoole は fd を保存するために何を使用しますか?

swoole は fd を保存するために何を使用しますか?

(*-*)浩
(*-*)浩オリジナル
2019-12-09 11:21:132842ブラウズ

swoole は fd を保存するために何を使用しますか?

from_id は、どのリアクター スレッドから来たかを示します

fd は、tcp 接続のファイル記述子であり、swoole_server 内のクライアントの一意の識別子です 推奨される学習: swoole ビデオ チュートリアル )

fd は再利用されます。接続が閉じられると、fd は新しい受信接続によって再利用されます。

TCP 接続fd は維持されています。再利用されません。

swoole_server->send/swoole_server->close 関数を呼び出すには、正しく処理されるように $fd パラメータを渡す必要があります。

ビジネスでブロードキャストを送信する必要がある場合は、apc/redis/memcache/swoole_table を使用して fd の値を保存する必要があります。

1.6.0 以降では from_id パラメータは必要ありません。Swoole 自体が、現在のすべての fd と対応する from_id をクエリするための ConnectionList を提供します。

1.7.10 以降では、fd は必要ありません。ファイル記述子です。 fd は 1 ~ 1600 万の範囲で自動的に増加する数値です。

fd が 1600 万を超えると、1

function my_onReceive($serv, $fd, $from_id, $data)  {
    //向Connection发送数据
    $serv->send($fd, 'Swoole: '.$data); 
    //关闭Connection
    $serv->close($fd); 
}

$ から自動的に多重化が開始されます。 fd 整数を使用する理由

$fd オブジェクトの代わりに整数を使用します。主な理由は、swoole がマルチプロセス モデルであるためです。ワーカー プロセスでいつでもクライアント接続にアクセスする必要がある場合があります。タスクプロセス。オブジェクトを使用する場合は、シリアル化/アンシリアル化する必要があります。パフォーマンスのオーバーヘッドが追加されます。 $fd が整数の場合、直接保存および転送に使用できます。

PHP レイヤーでは、クライアント接続をオブジェクトにカプセル化することもできます。オブジェクト指向の利点は、可読性が高く、接続の操作をメソッドにカプセル化できることです。

$connection->send($data);
$connection->close();
など

以上がswoole は fd を保存するために何を使用しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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