2011-10-27 16 views
1

複数のクライアントと単一のサーバーでクライアント/サーバーシステム(ソケットを使用)を使用しています。クライアント/サーバーの非同期通信にGZipStreamを使用する

XMLデータは常に1〜18000文字の異なるサイズであり、サーバーはこれらのXML-Datasをすべてのクライアントに同時に送信する必要があります。

ここで、サーバーとクライアント間の通信をより高速にする方法を知りたいと思います。

多分私は1つの質問を尋ねますが、私は本当にこの時点で固執しており、もはや続けることができません。

  • 送信前にすべてのXMLデータを圧縮する必要がありますか?
  • は、 XML-Datasをシリアル化する必要がありますか?
  • すべてのXML-Datasをbyte []配列(バッファ用) に変換する必要があるのは、すべてのクライアントでsametimeで通信を行う必要があるためです。

ありがとうございます!

答えて

0

現在、接続しているクライアントを繰り返し処理している場合は、pub-subトポロジが組み込まれた中間層を使用できます。 0MQは、単一のパブリッシャがn個のサブスクライバに非常に効率的に送信する能力を持ち、C#バインディングを持っています。また、提案したとおりにメッセージを圧縮して送信することもできます。

+0

がどの0MQがベンチマークリストを圧縮ありますか?私は0QMに非常に奇妙です。私のシステムに使用できますか? – Racooon

+0

docsから: "これはステロイドのソケットです"。それは、ネットワーク通信から多くの難しさを取り除くことができるミドルウェアです。 ØMQ(ZeroMQ、0MQ、zmq)は組み込み可能なネットワーキングライブラリのように見えますが、並行処理フレームワークのように機能し、インプロセス、プロセス間、TCP、マルチキャストなどのさまざまなトランスポートを介してメッセージ全体を伝達するソケットを提供します。ファンアウト、パブ・サブ、タスク・ディストリビューション、リクエスト・リプライのようなパターンで、N対Nのソケットを備えています。クラスター化された製品のファブリックとしては十分高速です。それはあなたのために多くを行うことができ、あなたの人生を簡単にすることができます。 – robowahoo

0

イントラネットで作業すると仮定すると、xmlデータはmulticastにすることをお勧めします。そうすれば、サーバは1秒ごとにxmlデータの1つのコピーを送信します(NクライアントのデータのN個のコピーを送信する代わりに)

+0

イントラネットで作業しないとどうなりますか? XMLデータをマルチキャストする別の方法はありますか? – Racooon

+0

これはISPによって異なります。 –

0

WCFを使用している場合、GZip圧縮を簡単に統合できます。ここ

チェック:WCF Compression over HTTP sample

+0

申し訳ありませんが、これはsocket(tcp) – Racooon

+0

を使っているアプリケーションです。http://www.codeproject.com/KB/IP/RCSStream.aspx –

+0

私はそれを試してくれます、ありがとう – Racooon

関連する問題