リアルタイムマルチプレイヤーゲームの場合、サーバーはWebsocketを使用してバイナリメッセージ(メッセージ)をクライアントに送信しています。Websocket - メッセージの分割
メッセージの最初のバイト(uint8)は、 "パケットID"となります。
例:次のバイトのx、y、スコア、名前の "更新エンティティ"へのパケット1。
しかし、に帯域幅を最適化、私は 2間のフレームを変更する値のみを送信したいと思います。
例(すべての値が変更された): "更新エンティティの位置" にパケット2: "更新エンティティスコア" のX、Y
パケット3:更新エンティティ名」に
パケット4のスコア「:考慮しないサイズ(の用語では、分割しない1つのメッセージ(1パケット)を送信するよりも同じ(4、パケット2、3)大量のメッセージを送信している:
私の質問があるに名前を付けます追加のパケットID "バイト、無視できる)?各Websocketメッセージに追加コストはかかりませんか?
ありがとうございました。 wssを使用すると、重いようです。 scoreFlag = 1の場合は、packetID(uint8)、xyFlag(uint8)、x(uint16)、xyFlag = 1、y ...、scoreFlag(uint8)、score(uint16)のようなユニークなメッセージを送信します。ここでは、statePropertyが最後のフレームから変更されていないときのフラグ= 0です。 statePropertyがuint8の場合、フラグは設定されません。 – zbeyens