我想以二进制形式发送游戏结果数据,部分是为了提高效率(每个项目发送 6 个字节而不是 13 个......这比要发送的数据总量减半还多,因为可能有几百个这样的项目,结果是巨大的节省),部分是为了混淆(监视网络活动的人会看到看似随机的字节而不是可区分的数据)。
我的“代码”(尚未使用,只是一个原型)如下:
String.fromCharCode.apply(null,somevar.toString(16).split(/(?=(?:..)+$)/).map(function(a) {return parseInt(a,16);}))
这会将任何整数值转换为二进制字符串值。
但是,我似乎记得 AJAX 和二进制数据不混合。我想知道可以安全使用的值范围。我应该坚持 32-255 的范围,还是更安全地坚持 32-127?在 32-255 的情况下,我可以在上面的代码中使用 15 作为底数,然后将 32 添加到所有数字上,这样就可以了。
但实际上我对字符范围问题更感兴趣,是否有任何跨浏览器(在支持 Canvas 的浏览器中)传输二进制数据的方式?