我正在用 HTML5 构建多人游戏。我已经阅读了一些关于通过 WebSockets 通过像 Uint8Array 这样的 ArrayBuffers 发送二进制数据的阅读,因为我想尽可能地避免开销(所以没有 JSON)。但是,我仍然不知道如何通过 WebSocket 实际发送特定的变量类型(尤其是 1 位布尔值)。
例如,我想通过 1 条消息中的二进制数据发送 5 个布尔值和 3 个数字(精度稍后确定)(因此没有多次发送)。在这种情况下:
- 编号 - 帧编号
- 布尔值 - W
- 布尔值 - A
- 布尔值 - S
- 布尔值 - D
- 布尔值 - 鼠标按下
- 数字 - 鼠标 X
- 数字 - 鼠标 Y
我将如何处理这个?我可以把它全部放入一个 Uint8Array 中吗?那不是一个字节吗?如果我只需要说 5 位而不是 8 位,它还会占用 8 位吗?如何将布尔值附加到 ArrayBuffer 并从 ArrayBuffer 中提取布尔值?还是我完全使用了错误的方法?
谢谢您的帮助。