1

我有一个 Java 服务器,它将 java 可序列化对象发送到我的客户端,并接收 java 可序列化对象以执行。如果我的客户也是 java 编写的,这很好,这让我可以在任何问题中进行沟通。

但是现在,我想将我的程序不仅扩展到 java 客户端,客户端可能是用 C、objective C、python 或 php 编写的。所以,我想做一些事情来“convent”客户端对java对象的请求,然后发送回服务器。在修道院过程中,我可以使用 JSON 来接收,并构造一个 Java 对象到服务器,但我还需要一个将 Java 对象转换回 JSON 到客户端的层。

我的问题是除了做一个 JSON-Java 翻译层,还有其他方法吗?此外,我们可以负担得起在服务器端更改一些代码,但我们必须使用 Java 作为我们的主要语言。有什么建议么?谢谢。

4

2 回答 2

0

还有其他为此设计的库,如协议缓冲区和节俭。

http://thrift.apache.org/

http://code.google.com/p/protobuf/

于 2012-04-03T06:58:20.893 回答
0

我使用 Netty API 来设计我的协议,如果你能理解类似 NIO 的 Byte 和 Buffer API,这样做会很快。它的设计目的是使用可以满足您需求的编码器和解码器的概念,有很多编码器和解码器的默认实现用于压缩,使用 ssl ...

您遇到的问题看起来像这样: JBoss Netty with JSON

我不太了解 JSON,但大多数时候也可以快速轻松地设计自己的协议。

您是否需要任何类型的 Object 的通用序列化过程,还是只需要序列化一些 String 和原始类型(Integer、Short、Float..等)?在简单对象的情况下,自己进行包装既容易又快得多。

如果对象非常简单,我猜是这种情况,您需要它来设计自己的“协议”规范,这意味着如何将每个对象转换为一系列原始类型、字符串和数组。比用每种语言编写编码器和解码器应该很容易。

祝你好运

于 2012-04-03T13:07:14.033 回答