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