0

これは実装というよりも設計上の問題ですが、このようなものを設計できるかどうか疑問に思っています。私はインタラクティブなアプリを持っています(Pythonシェルに似ています)。サーバーをホストしたい (どちらが良いかわからないので、node.js http サーバーまたは socket.io のいずれかを使用するとします)。サーバーに接続し、異なるコンテキストを維持するすべてのクライアントに対して新しい child_process を生成します。その特定のクライアント。私はnode.jsまたはsocket.ioに関して完全な初心者です。私が管理した最大は、socket.io サーバーに 1 つの子プロセスを持ち、クライアントをそれに接続することです。問題は、これでうまくいくかということです。そうでない場合、ノードを機能させる他の方法はありますか、それともローカルサーバーを使用した方がよいでしょうか。ありがとう

4

1 に答える 1

2

Node.js - シングル プロセスの Web プラットフォームです。クラスタリング (child_process) を使用して、別のスレッドで同じアプリケーションの独立した実行を作成します。
各スレッドはメモリを消費します。これが一般に、クライアントごとにスレッドが必要になるため、従来のシステムのほとんどがスケーラブルではない理由です。ノードの場合、ハードウェア リソースの観点からは非常に非効率的です。
ノードはイベント ベースであり、アプリケーション ロジックがそれを悪用しない限り、スコープについてあまり心配する必要はありません。
ワーカーの数は、ハードウェア上の CPU コアと同じにすることをお勧めします。

ワーカーを作成するマスター アプリケーションが常に存在します。各ワーカーは、技術的にはマスター ソケットにバインドされ、そこからルーティングされる http + socket.io リスナーを作成します。http リクエストは別のワーカーにルーティングされますが、ソケットは接続時にルーティングされますが、そのワーカーは切断されるまでこのソケットを処理します。

于 2013-06-27T10:15:27.797 に答える