最近、Ratchet (PHP WebSocket フレームワーク) を使用して PHP Web サイトを変換すると、エラーが発生しました:
「1024 に設定されていますが、少なくとも 1266 までの番号が付けられた記述子があります。
」 --enable-fd-setsize=2048 が推奨されますが、システムでサポートされているオープン ファイルの最大数と等しくなるように設定することもできます
基本原則は、バックグラウンドでさらにいくつかの WebSocket サービス プロセスを開き、各プロセスが異なるポート番号を使用することです。フロントエンド js は、バックグラウンドで開いている WebSocket サービス プロセスのポート番号にランダムに接続します。このように、各 WebSocket サービス プロセスには 1024 の利用可能な接続があります。必要な WebSocket サービス プロセスの数は、Web サイトの接続のピーク数に基づいて計算できます。もちろん、ある程度のマージンを残しておく必要があります。この方法では、PHP ソース コードを再コンパイルする必要がなく、PHP WebSocket の 1024 接続制限を簡単に突破できます。
バックエンドの実装
Push-server.php を WebSocket サービスとして作成します。push-server の実装は Ratchet の例を参照できますが、少し変更する必要があります。つまり、コマンド ライン パラメーターとして port を入力できます。
リーリー
必要に応じて、次のような複数の WebSocket プロセスを開始できます。
phpプッシュサーバー40003
phpプッシュサーバー40004
phpプッシュサーバー40005
このようにして、バックグラウンドは 1024 * 3 = 3072 の WebSocket 接続を許容できます。
フロントデスクの実施 接続サービスをランダムに取得するコードは次のとおりです:
リーリーもちろん、自分のニーズに応じて特定の WebSocket サービスに接続するタイミングを指定することもできるので、詳細は説明しません。
http://www.bkjia.com/PHPjc/729840.html
」