2015-07-10 50 views
2

我正在使用Netty來實現客戶端/服務器應用程序,我也使用Gson以json格式將數據從/發送到客戶端,並將其從/轉換爲java POJO。 問題是,如果數據超過一定的大小,則消息將被截斷,不會在程序中使用。所以我試圖找到一個壓縮格式(比Gson庫提供的json更好),或者可能是一種壓縮json字符串並避免截斷消息的方式。 任何幫助將不勝感激。壓縮從netty發送的數據

+0

誰截斷消息 - 客戶端? – wero

+0

我想這是服務器(當消息超過特定大小時),因爲在這種情況下客戶端收到2條消息。 –

+0

HTTP服務器可以發送的大小沒有限制。因此,找出發生了什麼問題是個好主意。 GSON消息的大小不是原因。 – wero

回答

1

如果你使用的協議是TCP/IP,你沒有保證,你發送的消息將在一個部分。你應該在你的消息中加入一些日期,這將允許客戶端確定它是否獲得了完整的消息(例如,可以將消息長度置於消息的開頭或消息末尾的某個分隔符)。

在客戶端,您應該檢查是否發送了整條消息,如果不是,則應等待消息的其餘部分。如果您在客戶端使用netty,則應將幀解碼器放入信道管道的起始位置(例如定界符爲DelimiterBasedFrameDecoder,長度字段爲LengthFieldBasedFrameDecoder)。

+0

謝謝它的工作! –