1

サーバーに次のデータを送信しています。

        var loc = {
            type            : 'exloc',                      
            ms              : this.var1.move,
            ppx             : this.var1.ppx,
            ppy             : this.var1.ppy,
            Name            : "red",
            rid             : this.gv.GlobalInfoHolder.CurrentRoomID
        };

このデータは次の形式でも送信できます。

 var obj = "type=exloc,ms="+this.var1.move+",ppx="+this.var1.ppx+",ppy="+this.var1.ppy+",Name=red,rid="+this.gv.GlobalInfoHolder.CurrentRoomID;

次にstrip、入力したコンマに基づいてデータを取得できます。

もう1つの方法は、オブジェクトをエンコードしてからjson、データをサーバーに送信してデコードすることです。

だから私はこれのための最良の解決策は何であるかを尋ねたかったのですか?jsonソリューションも含めて、これらの各変数のサイズをバイト単位で分析する方法を誰かに教えてもらうとよいでしょう。

変数のサイズを最小にするソリューションを選びたいです。誰かが最も歓迎されていることを提案したい場合は、パフォーマンスと効率のためにこれを行っています。リアルタイムで作業しているため、これを検討しています。クライアントとサーバー間で非常に迅速に(ミリ秒単位で)データを共有する必要があるゲーム

4

1 に答える 1

1

ネットワークアナライザプログラム(無料のFiddlerや、同じもので利用できる他の多くのプログラムなど)を入手して、ネットワークを介して何が送信されているかを正確に確認してください。私はクライアント/サーバーの問題をデバッグするためにこれを常に行っています。それは本当に簡単で、クライアントとサーバーの間で送信されているものを正確に示します。

JSONは最もストレージ効率の高い形式ではないため、サイズを最適化しようとしている場合は、冗長性の低い形式(フィールド名の単一コピーと多数)がほとんどの場合、おそらく最良のオプションではないことをすでに知っています。よりコンパクトになります。

さらに、最初にこれが重要かどうかを把握する必要があります。データが全体的に小さい場合、40バイトと80バイトのパフォーマンスの差はおそらく小さすぎて、単一のクライアントで測定することさえできません。一方、送信するレコードが数千ある場合は、各レコードのサイズで違いが生じる可能性があります。

于 2013-02-17T00:01:38.103 に答える