将XML字符串编码为EXI并通过websocket发送

时间:2013-01-30 15:03:33

标签: android xml node.js websocket exi

首先,我使用客户端 - 服务器架构,客户端为android,服务器为node.js,它们通过Socket.io库连接,因此,他们使用的是websockets。

我怀疑的是我使用Java中的XMLSerializer生成XML字符串,我想将其编码为EXI并将其发送到服务器,因此,是否可以在不使用文件的情况下执行编码XML-EXI?直接从字符串到字符串?因为我看到的所有例子都假设我的XML在一个文件中,我希望输出到另一个文件中。另一个疑问是,我可以将EXI作为字符串发送吗?因为我已经建立了客户端和服务器之间的通信,但是他们只是发送字符串,如果我可以发送整个文件,我不知道,在这种情况下,发送的数据量会有什么不同吗?

1 个答案:

答案 0 :(得分: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()方法之前设置输出流。