1

我想以二进制形式发送游戏结果数据,部分是为了提高效率(每个项目发送 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 的浏览器中)传输二进制数据的方式?

4

1 回答 1

0

AJAX 和二进制数据不相互冲突。发生的情况是,当您进行 AJAX 调用时,数据将作为表单数据发布。当您发布表单数据时,您通常会将表单数据编码为 application/x-www-form-url-encode。编码数据仅包含字母/数字和某些特殊字符。例如,空格编码为 %20。出于这个原因,即使您将“普通”字母转换为二进制,它也可能根本不会为您节省任何空间,因为最终所有内容都必须再次编码。

于 2013-07-09T23:48:40.463 回答