使用javascript

时间:2016-06-22 09:19:43

标签: javascript java protostuff

我使用protostuff将json输入转换为字节数组。 java中的代码是:

LinkedBuffer buffer = LinkedBuffer.allocate(1024);
Schema<String> orderSchema = RuntimeSchema.getSchema(String.class);
int i = 1 ;
for(String p:poligonsStr) {               
    buffer.clear();
    byteslist.add(ProtostuffIOUtil.toByteArray(p, orderSchema, buffer));
}

问题是我不知道使用的算法以及如何使用JavaScript客户端(Node.js)进行解码。另外我看到在项目com.dyuproject.protostuff中有一个名为Smile for protostuff的非常好的算法,但我想知道如何使用该库获取模式 - 我还没有管理它。

我想知道什么是最好用的:ProtostuffIOUtilSmileIOUtil? 以及如何使用?以及如何用JavaScript解码?

1 个答案:

答案 0 :(得分:0)

protostuff 二进制编码与 protobuf 不同,据我所知,目前没有JavaScript库来解码protostuff编码的数据。

开箱即用的Web浏览器不支持

smile ,但有些库可以对其进行解码。

对于我来说,有两种方法可以使用Protostuff库在服务器上编码数据,并在客户端使用JavaScript对其进行解码:

  1. 使用 protobuf 编码,编码数据的大小很重要。在服务器端,您应该使用ProtobufIOUtil将数据序列化为protobuf二进制格式。在客户端,您可以使用https://github.com/dcodeIO/ProtoBuf.js/解码来自服务器的二进制数据。
  2. 使用 JSON 编码,它是JavaScript的原生格式,通常比二进制protobuf编码数据解析得更快。在服务器端,您应该使用JsonIOUtil(来自protostuff-json模块)将数据序列化为JSON文本格式。在客户端,它支持开箱即用。
  3. 以下是使用Protostuff将POJO序列化为protobuf二进制文件的示例:HelloService.java