Ajax推送引擎(APE):如何发送二进制数据或特殊字符



此代码示例来自APE官方网站:http://www.ape-project.org/

var client = new APE.Client();
client.load();
client.core.join('testChannel');
client.request.send('foo', {ping: 'ho hey', fieldWidthBinaryDataOrSpecialCharacters: '+/'});
client.onRaw('bar', function(raw, pipe) {
    console.log('echo : ' + raw.data.echo);
    console.log('Receiving : ' + raw.data.hello);
});

当我在服务器端接收到数据时,我发现特殊字符+/已经被URL编码(%2B%2F)。

APE总是使用GET吗?如果我们使用POST,我认为我们可以发布任何数据,包括二进制数据,对吧?但是如何在JSON中使用POST呢?

我的情况是,即使我不使用二进制格式,我也必须使用Base64。但是标准Base64使用+/,这不是URL安全的。您可能建议使用URL安全版本的Base64,但URLSafeBase64不是标准版本,它也可能会产生其他问题。

我是不是误解了什么?

谢谢。

Peter

我终于完成了两步编码:

客户端:

  1. Base64编码

服务器端:

  1. URL解码;(URL编码似乎是在APE的某个地方自动完成的)
  2. Base64解码

附言:如果有人知道如何以更有效的方式传输二进制数据,请告诉我,我会把你的答案重新标记为正确的。

相关内容

  • 没有找到相关文章

最新更新