Кодировать строку XML в EXI и отправить ее через веб-сокет

Прежде всего, я использую архитектуру клиент-сервер, android для клиента и node.js для сервера, они подключены через библиотеку Socket.io, поэтому они используют веб-сокеты.

У меня есть сомнения в том, что я генерирую XML-строку с XMLSerializer из Java, я хочу закодировать ее в EXI и отправить на сервер, таким образом, возможно ли выполнить кодирование XML-EXI без использования файлов? прямо из строки в строку? потому что все примеры, которые я вижу, предполагают, что мой XML находится в файле, и я хочу вывод в другой файл. Еще одно сомнение, я могу просто отправить EXI в виде строки? потому что я уже установил связь между клиентом и сервером, но они просто отправляют строки, я не уверен, что смогу ли я отправить целые файлы, в таком случае, будет ли какое-либо различие в количестве отправленных данных?

1 ответ

Решение

Наконец, я решил это, для людей с той же проблемой, решение:

String input = methodGivingXMLString();
byte inputBytes[] = input.getBytes();
ByteArrayInputStream in = new ByteArrayInputStream(inputBytes);
transmogrifier.encode(new InputSource(in));

Для ввода и для вывода:

 ByteArrayOutputStream result = new ByteArrayOutputStream();
 transmogrifier.setOutputStream(result);

примечание 1: я использую библиотеку OpenExi

примечание 2: выходной поток должен быть установлен перед вызовом метода encode().

Другие вопросы по тегам