通过套接字发送对象,但使用不同语言的客户端,如何使对象序列化



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

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

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

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

你的问题看起来像这样:JBoss Netty与JSON

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

对于任何类型的Object,您需要一个通用的序列化过程吗?还是只需要序列化一些String和基元类型(Integer、Short、Float等)?在简单对象的情况下,自己做包装器很容易,速度也快得多。

如果对象很简单,我想是这样的,那么你需要它来设计你自己的"协议"规范,也就是说如何将每个对象变成一系列基元类型、字符串和数组。然后,用每种语言编写编码器和解码器应该很容易。

祝好运

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

http://thrift.apache.org/

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

相关内容

  • 没有找到相关文章

最新更新