3

バックエンドでTomcatを実行して、WebSocketを楽しんでいます。クライアントと共有したいデータのストリームが複数ある場合、ストリームごとに1つのWebSocketを使用するか、1つの共有WebSocketに多重化する方がよいでしょうか。

確かに、ストリームごとに1つのWebSocketを使用する方が簡単なようです。すべてのデータを1つのパイプにまとめるために、クライアントとサーバーの高度なロジックは必要ありません。また、各フレームの送信元/宛先を示すためのデータ形式のオーバーヘッドも必要ありません。

しかし、1つのクライアントページで複数のWebSocket(5〜10)を使用することの欠点はありますか?

4

2 に答える 2

4

一部のブラウザが同じタブ/ページからのWebsocket接続の迅速な作成を制限する可能性があるという噂を聞いたことがあります(実際にはテストされていません)。それが本当なら、悪意のあるJavascriptがWebSocketを使用してポートスキャンを実行しようとするのを思いとどまらせることです。ただし、それ以外は問題はないはずです。

ただし、WebSocketは(生のストリームではなく)メッセージベースであるため、1つの接続でトラフィックを多重化/多重化することはそれほど難しくありません。各メッセージの先頭に1文字を追加して、どのストリームを示すことができます(または、JSONマップを送受信している場合は、各メッセージに別のフィールドを追加するだけです)。

于 2012-10-06T18:41:20.527 に答える
4

多数の複数の同時ユーザーを許可する場合は、TCP / IPサーバーが同時に開くことができる接続の数に制限がないため、ユーザーあたりの接続数を最小限に抑える必要があります。同時接続の数は、Webサーバーの構成、オペレーティングシステム、および最後になりますが、IPプロトコル自体のアーキテクチャ(2 ^ 16ポートのみ)によって制限されます。

于 2012-10-06T20:50:59.177 に答える