4

サーバー側でwebsokectsがどのように機能するかを取得しようとしています。ここでの回答から得たように、主に次のケースです:

  1. ブラウザがサーバーに接続します
  2. サーバーはユーザーとの二重永続接続を確立します
  3. サーバーはこのユーザーのコードのインスタンスを実行します
  4. これはすべて他のユーザーに対して繰り返されます

質問は次のとおりです。

サーバーはすべてのユーザーを 1 つのプロセスで処理できますか? それらを分離せずに、グローバルプロセスが好きな人もいます。

ありがとうございました。

4

1 に答える 1

6

これはサーバーに大きく依存します。

サーバーの実装/テクニックの例: (明らかに完全なリストではありません)

  1. WebSocket 接続ごとに 1 つのプロセス
  2. WebSocket 接続ごとに 1 つのスレッド
  3. 多くのn 個のWebSocket 接続を管理する 1 つのスレッド
  4. すべての WebSocket 接続用の共有スレッド プール。(スレッドは必要に応じて取り込まれて使用されます。接続がアイドル状態の場合、スレッドはプールに戻されます。)

実装ごとのトレードオフが表示されます。

websocket はリクエスト -> レスポンスのアプローチではないため、あるアプローチが他のアプローチよりも優れているとは言えません。どのアプローチが最適かを知るために、WebSocket の使用をどのように計画しているかを理解したいと考えています。

この件に関するいくつかの考え:( 非常に意見に基づく)

  • あなたのサーバー側は重い処理をするつもりですか? (テクニック 1、2、または 3 を選択)
  • あなたのサーバー側はおしゃべりになりますか?(3つまたは4つを選択)
  • 多くのクライアント (チャット サーバーなど) と通信する 1 つの中央 Websocket サーバー インスタンスを使用する予定ですか? (3つまたは4つを選択)
  • それとも、ユーザーごとにカスタマイズされたインタラクティブな更新を行う予定ですか? (株式市場のアクティビティ フィードのようなもの) (1、2、または 4 を選択)
  • 数万 (数百ではないにしても) の同時接続をサポートしたいですか? (3つまたは4つを選択)
  • あなたの最大の制約は何ですか?メモリー?CPU?ネットワーク帯域幅?
于 2013-10-12T02:25:49.383 に答える