2013-04-16 8 views
0

일부 요청에 응답하기 위해 청크 클래스를 사용하는 서버 코드를 마이그레이션하려고합니다. 이전에 질문 한 질문에 대한 피드백을 바탕으로 DefaultHttpResponse (Transfer-Encoding: chunked) 채널에 씁니다. 일부 콘텐츠는 DefaultHttpContent이고 마지막으로는 DefaultLastHttpContent입니다. 그게 중요하다면 이것은 SSL을 통한 것이다. 내가 tcpdump와/Wireshark와 함께 확인,이 중 누구도 와이어를 발송하지 않습니다 어떤 경우Netty 4 및 서버 청크 응답

if (sslFactory != null) { 
     SSLEngine engine = sslFactory.createSSLEngine(false); 
     engine.setUseClientMode(false); 
     p.addLast("ssl", new SslHandler(engine)); 
    } 

    p.addLast("decoder", new HttpRequestDecoder(connectConfig.maxInitialLineLength(), 
      connectConfig.maxHeaderSize(), connectConfig.maxChunkSize())); 

    // Uncomment the following line if you don't want to handle HttpChunks. 
    p.addLast("aggregator", new HttpObjectAggregator(1048576)); 

    p.addLast("encoder", new HttpResponseEncoder()); 

    p.addLast("deflater", new HttpContentCompressor());  

    ChannelHandler handler = new BusinessRequestHandler(...); 

    // if enabled, use the execution handler 
    if (eventExecutor.isDefined()) { 
     p.addLast(eventExecutor.get(), "handler", handler); 
    } else { 
     p.addLast("handler", handler); 
    } 

: 내 파이프 라인에 매우 기본이다. 필자는 완성 처리기를 쓰기에 추가했으며 모두 쓰기가 완료되었음을 나타 냈습니다. FullHttpResponse으로 전환하고 청크를 건너 뛰면 모든 것이 올바르게 작동하고 내용이 기록됩니다.

그런 다음 HttpContentEncoder::encode에서 보았고 HttpResponse가 어떻게 전달되는지는 알 수 없습니다. 상태 코드가 100으로 설정되어 있지만이 사용 사례에 대해 명확하지는 않습니다. 내가 알 수있는 한,이 함수는 사용 사례에 대해 null을 반환합니다.

무엇이 누락 되었습니까?

감사합니다. Senthil.

+0

Tustin이 제공 한 링크는 일부 문제를 해결했지만 다른 문제는 해결되지 않았으며 [여기] (https://github.com/netty/netty/issues/1280)에 설명되어 있습니다. . – user2230128

+0

이제 모든 문제가 해결되었습니다. – trustin

답변