7

ユーザーが共同作業できるリアルタイム アプリの作成を考えています。node.js + socket.io がこのタイプの問題の解決策の 1 つであることを発見しました。

サーバーがユーザーに提供するソケットの数に関しては、ボトルネックがあると他の開発者から聞いています。そのため、何百人ものユーザーが同時に共同作業を行っている場合、開いているソケットの数が不足し、ユーザーが接続できなくなります。これは正当な懸念事項ですか?

更新:関連するメモの種類で、Socket.ioの代わりにSockJSを使用しようとしています。これらのライブラリの長所と短所を説明するスレッドがあります。また、これは良い読み物です。

4

2 に答える 2

4

何百人ものユーザーにとって、それは問題ではないと思います。

ご存じのように、ソケットはクライアントとサーバーの間に永続的な接続を持ち、両者はいつでもデータの送信を開始できます。それらを開いたままにしておくことは、1 秒あたりに送信されるメッセージの観点から負荷を処理するほど問題ではありません。

Socket.io は、1000 の同時接続を簡単に処理できます。ただし、1 秒あたり 8 ~ 10,000 件を超えるメッセージを送信している場合は失敗します。ソケットが使い果たされる前に、ロード バリアにぶつかります。ほとんどの場合、より多くの同時ユーザーを処理すると、負荷が高くなります。したがって、ソケットが不足する心配はありません。その障壁を超えて拡張しようとすると、より多くのサーバー リソースが必要になります。

便利なリンク :

  1. Socket.IO - 開いている接続は懸念事項ですか?
  2. http://www.quora.com/How-do-I-scale-socket-io-servers-2
于 2013-03-27T05:43:51.523 に答える
1

There are already solutions using this approach like Cloud9 and it works good. There will be a point where you will need to scale out. So if you are planing something big I would think about it.

Here are some tests on sockets.io with 10,000 concurrent connections. Looks like it's good solution but not easy one because of fallback mechanism.

于 2013-03-26T22:02:28.520 に答える