3

node.js とおそらく socket.io を使用して Web アプリケーションを構築しようとしていますが、socket.io を使用するかプレーン http を使用するかについて多くの混乱があります。アプリでは、node.js サーバーは基本的に、json を JavaScript クライアントに提供する API サーバーであるか、モバイル クライアントでもある場合があります。Web アプリには、ユーザー向けのチャット メッセンジャーもあり、socket.io の出番です。

  • アプリ全体に socket.io を使用するか、チャット部分のみに使用するかはわかりません。私のアプリ自体はsocket.ioの恩恵を受ける可能性がありますが、プレーンなhttpとクライアントを使用してサーバーにさらにリクエストを送信することはできないと思います。

  • 私はいくつかの場所で、socket.io をより多くのユーザーにスケーリングするのが難しい場合があることを読みました。

  • クライアントシステムにファイアウォールがある場合、Socket.io はしばしばクラッシュし、特別にプローブを作成します。

  • さらに重要なこととして、socket.io のユーザー リストを調べたところ、多くのユーザーが見つからなかったので、Facebook メッセンジャー、Google トークなどのチャット ネットワークがどのようなプラットフォームで構築されているか知りたいと思っていました。 http-ajax を使用し、サーバーへのクエリを続行します。

この質問を解決するのを手伝ってください。これは意見に基づく質問だと主張する人もいるかもしれません。しかし、実際に私がsocket.ioの実装とその制限を理解しようとしているのは何ですか。

4

2 に答える 2

0
  • Socket.io はプレーンな http よりも高速です。そもそもチャットをしなければならないので、すべてに使用することをお勧めします。
  • 私の場合、リアルタイムのテキサス ホールデムのようなゲームは、1 つのノード プロセスで同時に最大 2500 を受け取ることができます。ただし、トランスポートを websocket から xhr-polling に変更すると、純粋な websocket の 10 倍程度の受信が可能になります。あなたのアプリケーションはただのチャットなので、少し遅くなっても問題ないと思います。この数を超えると確信している場合は、socket.io をスケーリングするのは面倒です。
  • この問題は、80 および 443 以外のポートで socket.io を開いた場合にのみ発生します。他の言語のフロントエンド Web サーバーが既にある場合でも、別のサブドメインで socket.io を使用して、競合することなくポート 80 で実行できるようにすることができます。メインのフロントエンド Web サーバーで。Socket.io は問題なくクロスドメインをサポートします。
  • Trello.com を使用したことがありますか? そうでない場合は、試してみてください:)。タスク管理やアジャイルに最適です。彼らはsocket.ioを使用しました。https://c9.io/は別のものです。これは、Google ドキュメントのような共同作業を行うオンライン IDE です。注意すべきことの 1 つは、socket.io の xhr-polling trasport が、ロング ポーリングを使用する http-ajax と同じであることです (一般的な ajax よりも優れています)。詳細については、http: //book.mixu.net/node/ch13.htmlをご覧ください。
于 2013-11-15T07:39:48.590 に答える