2015-12-28 81 views
0

我使用netty構建了一個http服務器。當它在我的mac中運行時,一切都很好,但是當我在docker鏡像中運行它時,http響應總是在大於460k時被截斷。http響應在docker中被截斷了

什麼問題會是?請幫忙。

+0

我使用的是網狀5.0.0alpha2。 – spacedragon

+0

顯示Dockerfile和可重複測試可能有所幫助。 –

+0

你使用聚合器來聚合http響應嗎? –

回答

0

你使用聚合器來聚合HTTP響應嗎?看看HttpObjectDecoder的源代碼。無論http消息本身是否是傳輸編碼,它都會將更大的http響應塊化。

默認的maxChunk大小是8k。甚至可讀的字節就足夠了,它會把它分塊。請參閱下面的代碼:

`case READ_FIXED_LENGTH_CONTENT:{readLimit = actualReadableBytes();

 // Check if the buffer is readable first as we use the readable byte count 
     // to create the HttpChunk. This is needed as otherwise we may end up with 
     // create a HttpChunk instance that contains an empty buffer and so is 
     // handled like it is the last HttpChunk. 
     // 
     // See https://github.com/netty/netty/issues/433 
     if (readLimit == 0) { 
      return; 
     } 

     int toRead = Math.min(readLimit, maxChunkSize); 
     if (toRead > chunkSize) { 
      toRead = (int) chunkSize; 
     } 
     ByteBuf content = readBytes(ctx.alloc(), buffer, toRead); 
     chunkSize -= toRead; 

`