2012-11-08 13 views
5

私は、Webソケットを使用する単一ページのバックボーンアプリケーションで作業しています。このアプリケーションはかなり複雑で、6つ以上の主要な領域(画面)があります。単一ページのWebアプリケーションは、1つまたは複数のWebソケット接続を維持する必要がありますか?

Webソケットの構文はかなり単純であるように思えますが、私は今アーキテクチャについて疑問に思っています。

ウェブソケットを使用する場合、最初のアプローチまたは2番目のアプローチを実行するのが最も効果的ですか?

:すべてのライブサーバー通信、アプリケーションの画面またはエリアで1つのWebSocketを開き、クライアント側でこれらのメッセージをフィルタリングしますか?

か...

:オープン複数のWebSocketをは(私は、このページを見てきた各Webソケットはアプリケーション

での機能のいくつかの領域を表し時、で、それは程度ですサーバー側と私はクライアント側に興味があります:What is the best practice for WebSocket server(s)?

更新:サーバーはJetty(Tomcatとは異なりJava技術ではありません)を使用しています。

+1

特定の理由がない限り、私は1つの接続を使用します。一度に開くことができる接続の数には制限があります。 – Brad

答えて

2

1つの接続しか開きません。管理が簡単です。デバッグを容易にするために、すべてのイベントをエリア名で名前を付けることができます。 socket.ioも名前空間をサポートしています。「自分自身を名前空間に制限する」の節を参照してください。http://socket.io/#how-to-useあなたは上のバックボーンを使用していると言うことから、https://developer.mozilla.org/en-US/docs/DOM/Using_the_Page_Visibility_API

1

ないあなたの質問に直接答えしかし:あなたがあなたのWebSocketとのコミュニケーションをたくさんやっている場合も

あなたは可視性API、ここでの例でそれをオフにすることができますあなたがサーバー上のノードを使用していると仮定した場合、クライアントとノードの間のモデルデータの共有を詳細に説明しているthis articleに興味があるかもしれません。サーバーは状態を同期させます。バックボーンは、あなたが気づいていなかった場合に備えて、ノードにモジュールとしてインストールできます。

説明したように、アプリケーションはかなり複雑なので、同じ複雑なモデルをクライアントとサーバーの間で直接共有できるという利点があります。

関連する問題