压缩从netty发送的数据
Compressing data sent from netty
我正在使用 Netty 实现一个 client/server 应用程序,我也在使用 Gson 以 json 格式向客户端发送数据 from/to 并转换它 from/to一个java个POJO。
问题是如果数据超过一定大小,消息将被截断并且不会在程序中使用。所以我试图找到一种压缩格式(比 Gson 库提供的 json 更好)或者可能是一种压缩 json 字符串并避免消息被截断的方法。
任何帮助将不胜感激..
如果您使用的协议是 TCP/IP,您无法保证您发送的消息会分一部分发送。您应该在您的消息中添加一些日期,这将允许客户端确定它是否收到了完整的消息(例如,您可以将消息长度放在消息的开头或消息末尾的一些分隔符)。
在客户端,您应该检查是否收到了整个消息,如果没有收到,您应该等待消息的其余部分。如果您在客户端使用 netty,则应将帧解码器放在通道管道的开头(例如,在分隔符的情况下使用 DelimiterBasedFrameDecoder,在长度字段的情况下使用 LengthFieldBasedFrameDecoder)。
我正在使用 Netty 实现一个 client/server 应用程序,我也在使用 Gson 以 json 格式向客户端发送数据 from/to 并转换它 from/to一个java个POJO。 问题是如果数据超过一定大小,消息将被截断并且不会在程序中使用。所以我试图找到一种压缩格式(比 Gson 库提供的 json 更好)或者可能是一种压缩 json 字符串并避免消息被截断的方法。 任何帮助将不胜感激..
如果您使用的协议是 TCP/IP,您无法保证您发送的消息会分一部分发送。您应该在您的消息中添加一些日期,这将允许客户端确定它是否收到了完整的消息(例如,您可以将消息长度放在消息的开头或消息末尾的一些分隔符)。
在客户端,您应该检查是否收到了整个消息,如果没有收到,您应该等待消息的其余部分。如果您在客户端使用 netty,则应将帧解码器放在通道管道的开头(例如,在分隔符的情况下使用 DelimiterBasedFrameDecoder,在长度字段的情况下使用 LengthFieldBasedFrameDecoder)。