And*_*gan 5 javascript html5 node.js socket.io
我正在创建一个8位无符号的javascript数组:
var myArray = Uint8Array(64);
Run Code Online (Sandbox Code Playgroud)
在客户端和服务器上操作此数组,然后通过socket.io连接发送它.我们正在编写一个游戏,因此通过网络发送的数据尽可能小.因为socket.io不支持发送二进制数据是否值得使用javascript类型数组,或者我们应该只使用普通的javascript数组?它们还会比原生的js阵列小吗?
注意:我将假设客户端是指浏览器.另外,请详细说明.
Socket.io不支持二进制数据,主要是因为它提供了不同的传输,并且其中许多都不支持它.
但是,本机websockets DO支持Blob和ArrayBuffers.
如果你真的想要使用二进制数据来提高效率(我同意,这是你的方法),我认为你应该考虑使用websockets而不是socket.io.
坏事:
好处:
Web套接字API非常简单.
它将更加节省内存.通常,通过首先将它们作为JSON字符串然后将它们发回来传输正常的数组.这意味着您实际上正在发送数组的字符串表示!相反,在这里,您将发送您期望的字节数(以更可预测的方式,在发送之前不检查字符串长度,但如果需要,以更多"协议"方式).
如果您决定使用WS,可以查看:http://www.adobe.com/devnet/html5/articles/real-time-data-exchange-in-html5-with-websockets.html
另外,你可以使用JSON.
说实话,如果你仍然使用JSON进行socket.io和"通用"支持,也可以启用闪存传输,如果游戏需要低延迟,则禁用较慢的传输.
| 归档时间: |
|
| 查看次数: |
1098 次 |
| 最近记录: |