0

HTML5でマルチプレイヤーゲームを構築しています。可能な限り多くのオーバーヘッドを回避したいので(JSONがないように)、Uint8ArrayなどのArrayBuffersを介してWebSocketを介してバイナリデータを送信する方法について読みました。ただし、WebSocketを介して特定の変数タイプ(特に1ビットのブール値)を実際に送信する方法については、まだ迷っています。

たとえば、5つのブール値と3つの数値(精度は後で決定されます)を1つのメッセージでバイナリデータを介して送信したいとします(したがって、複数の送信はありません)。この場合:

  1. 番号-フレーム番号
  2. ブール値-W
  3. ブール値-A
  4. ブール値-S
  5. ブール値-D
  6. ブール値-マウスダウン
  7. 番号-マウスX
  8. 番号-マウスY

これにどのようにアプローチしますか?すべてをUint8Arrayに入れることはできますか?それはバイトではありませんか?8ビットではなく5ビットだけを言う必要がある場合、それでも8ビットを使用しますか?ArrayBufferにブール値を追加したり、ArrayBufferからブール値を抽出したりするにはどうすればよいですか?それとも私は完全に間違ったアプローチを使用していますか?

助けてくれてありがとう。

4

1 に答える 1

1

データストリームの書き込みには、より使いやすい DataView を使用できます。

https://developer.mozilla.org/en-US/docs/Web/API/DataView?redirectlocale=en-US&redirectslug=Web%2FJavaScript%2FTyped_arrays%2FDataView

于 2013-10-16T02:52:32.117 に答える