ホームページ  >  記事  >  PHPフレームワーク  >  スウールfdってどういう意味ですか?

スウールfdってどういう意味ですか?

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼オリジナル
2019-12-12 10:37:203293ブラウズ

スウールfdってどういう意味ですか?

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

fd は再利用されます。コネクションが閉じられると、fd は新しく入力されたコネクションによって再利用されます。維持されている 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();

PHP 中国語 Web サイトには、無料の Swoole 入門チュートリアル が多数あり、誰でも学習することができます。

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

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