7

私は、Web ソケットを使用する単一ページのバックボーン アプリケーションに取り組んでいます。アプリケーションはかなり複雑で、6 つ以上の主要な領域 (画面) があります。

Web ソケットの構文は非常に簡単に思えますが、今はそのアーキテクチャについて疑問に思っています。

Web ソケットを使用する場合、最初のアプローチと 2 番目のアプローチのどちらを使用するのが最も効率的ですか?

1 : アプリケーションの任意の画面または領域で、すべてのライブ サーバー通信用に単一の Websocket を開き、クライアント側でそれらのメッセージをフィルタリングしますか?

また...

2 : 一度に複数の Websocket を開きます。各 Websocket は、アプリケーション内の機能の一部の領域を表します。

(このページを見たことがありますが、それはサーバー側に関するもので、クライアント側に興味があります: What is the best practice for WebSocket server(s)? )

更新: サーバーは Jetty (Tomcat に似ていない Java テクノロジ) を使用しています。

4

2 に答える 2

3

管理しやすいように、接続を 1 つだけ開きます。デバッグを容易にするために、すべてのイベントにエリア名で名前を付けることができます。また、socket.io は名前空間をサポートしています。 http://socket.io/#how-to-useの「名前空間に制限する」セクションを参照してください。

また、Websocket と多くの通信を行っている場合は、Visibility API を使用して無効にすることができます

于 2012-11-09T00:13:06.190 に答える
1

あなたの質問に対する直接的な答えではありませんが、クライアントでバックボーンを使用していると言い、サーバーでノードを使用していると仮定しているため (そうでない場合、これはそうするための説得力のある議論になる可能性があります)、興味があるかもしれません。この記事では、クライアントと (ノード) サーバー間でモデル データを共有して状態を同期する方法について詳しく説明しています。ご存じないかもしれませんが、バックボーンはノードにモジュールとしてインストールできます。

あなたが説明したように、あなたのアプリケーションはかなり複雑であるため、同じ複雑なモデルをクライアントとサーバー間で直接共有する機能が役立つと思われます。

于 2012-11-09T00:23:01.447 に答える