Ajax Push Engine (APE): как отправлять двоичные данные или специальные символы - PullRequest
0 голосов
/ 19 января 2012

Этот пример кода с официального сайта 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, я думаю, что мы можем публиковать любые данные, включая двоичные данные, верно?Но как использовать POST в JSON?

В моем случае, даже если я не использую двоичный формат, я должен использовать Base64.Но стандарт Base64 использует +/, что небезопасно для URL.Вы могли бы предложить использовать безопасную для URL версию Base64, но URLSafeBase64 не является стандартным, и это может также создать другие проблемы.

Я что-то неправильно понимаю?

Спасибо.

Питер

1 Ответ

0 голосов
/ 25 января 2012

Я наконец сделал двухэтапное кодирование:

Клиентская сторона:

  1. Base64 Кодировка;

Сторона сервера:

  1. декодирование URL; (Кажется, кодировка URL автоматически выполняется где-то в APE)
  2. Base64 Декодирование.

P.S .: Если кто-нибудь знает, как сделать это более эффективным способом передачи двоичных данных, пожалуйста, дайте мне знать, и я отмечу ваш ответ как правильный.

...