1

だから私は現在アプリを構築しており、ネットワーキングを行う最も効率的な方法について考えようとしています。

私は、トピックを投稿すると人々がそれについてチャットするという点で、チャット ルームとフォーラムの投稿の間のクロスを作成しようとしています。このチャットをリアルタイムで行い、ユーザーがさまざまなトピック (チャット ルーム) をすばやく切り替えることができるようにしたいと考えています。

これは本質的に単純なチャット ルーム アプリであり、ご存知のように SocketIO を使用すると非常に簡単です。しかし、私が緊張しているのは、スケーラビリティの問題です。多くのユーザーが多くの SocketIO ルームにサブスクライブしていると、スケーラビリティの問題はありますか?

一般に、チャット ルーム アプリケーションでは、ユーザーは一度に 1 つのチャット ルームでのみアクティブになるため、合計でそれほど多くのルームはありません。私が設計しているシステムでは、これらのトピック (チャット ルーム) が同時に何千も更新される可能性があり、1 人のユーザーがそれらの多くで同時にアクティブになる可能性があります (新しいトピックを作成するたびに)。フォーラムの投稿では、新しい SocketIO ルームを作成しています)。

これをどのように解決できますか?1 時間以上更新されていないトピックのすべての SocketIO ルームのみを破棄し、すべての情報をデータベースに保存して、再度更新された場合に再作成することを考えていますか? これは適切なアプローチでしょうか?

以前にこのような問題に遭遇した人はいますか? 私はこれを間違った方法で行っているように感じており、これに Web ソケットを使用するべきではありません。

アップデート:

私はばかげています。すべてのトピックではなく、ユーザーがトピックを閲覧している間、socket.io メッセージのみを送信する必要があることに気付きました。

ただし、トピックが更新されたことをユーザーに知らせるメッセージをプッシュする必要があります (誰かがコメントしたなど)。

4

0 に答える 0