通过Java中的套接字传递压缩的JSON

时间:2015-12-08 11:44:04

标签: java json sockets

我计划将当前的Java 7应用程序拆分为服务器端和客户端端。服务器端和客户端端应使用套接字进行通信。  基本上

  

1)客户端通过端口向服务器发送请求   2)服务器生成JSON响应并将该响应发回   3)客户应该反序列化JSON

现在问题是,回复JSON的大小与 1MB 大致相同!我对Java套接字的经验有限,并且与服务器的通信需要与语言无关所以我不确定应该使用哪种类型的流?

我可以使用 GZipOutputStream (如果生成的结果可以通过GZIP lib从任何语言解压缩吗?我应该用别的吗?

请给我一些建议:)

2 个答案:

答案 0 :(得分:1)

如果普通套接字是唯一的选择,那么使用GZIPOutputStream是一个很好的解决方案。它将生成符合标准的gzip格式,因此支持gzip压缩格式的任何语言或工具都可以读取。

如果你的客户端也是java,你可以使用GZIPInputStream解压缩并取出json文本。

挑战将是实现套接字服务器和(在较小程度上)套接字客户端代码。我建议谷歌搜索代码示例并根据您的需要进行调整。

答案 1 :(得分:0)

我建议使用http协议而不是普通套接字。在应用程序服务器上实现您的服务器,例如tomcat或jetty。它们很容易设置。

要实现客户端,可以使用apache http client。

这种方法的一个优点是:您不需要编写http压缩程序。 You can configure it in tomcat。 http客户端会自动解压缩。