ホームページ >PHPフレームワーク >Swoole >スウールFDとは何ですか

スウールFDとは何ですか

(*-*)浩
(*-*)浩オリジナル
2019-12-06 09:16:033732ブラウズ

スウールFDとは何ですか

fd は tcp 接続のファイル記述子であり、swoole_server 内のクライアントの一意の識別子です。

fd は再利用されます。 、接続が閉じられると、fd は新しい受信接続によって再利用されます (推奨学習: swoole ビデオ チュートリアル )

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

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

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

バージョン 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();
など

以上がスウールFDとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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