クライアント/サーバ非同期通信用GZipStreamの使用

私はクライアント/サーバーシステム(ソケットを使用して)複数のクライアントとすべてのクライアント上でXMLデータを毎秒送信する単一のサーバーを持っています。

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

今、私は、サーバーとクライアント間のコミュニケーションをより速くする方法を知りたいと思います。

たぶん私は質問を1つ以上聞いてきますが、私は本当にこの時点で固執しており、私はもはや続けることができません。

  • 送信する前にすべてのXMLデータを圧縮する必要がありますか?
  • XML-Datasをシリアライズする必要がありますか? (おそらくxmlデータのサイズが減少します)
  • すべてのXML-Datasをbyte []配列(バッファ用)に変換する必要がありますか? これは、すべてのクライアントに対して、同時に通信を行う必要があるためです。

ありがとうございました!

1

3 答え

イントラネットで作業していると仮定して、XMLデータをマルチキャストすることをお勧めします。そうすれば、サーバーは毎秒xmlデータの1つのコピーを送信します(Nクライアント用にN個のデータコピーを送信するのではなく)

0
追加された
それはあなたのISPにかかっています。
追加された 著者 L.B,
イントラネットで作業しないとどうなりますか? XMLデータをマルチキャストする別の方法はありますか?
追加された 著者 Racooon,

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

check here: WCF Compression over HTTP sample

0
追加された
申し訳ありませんが、これはsocket(tcp)を使用したアプリケーションです
追加された 著者 Racooon,
私はそれを試します、ありがとう
追加された 著者 Racooon,
次に見てください: codeproject.com/KB/IP/RCSStream.aspx
追加された 著者 Davide Piras,

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

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