2017-04-21 7 views
1

Nettyを使用して単純なhttp/2サーバを設定しています。私はhttp/2サーバとしてthisの例を使用しています。netty http2サーバが常にstreamIdに奇数を使用する理由

このサーバーをテストするには、nettyの例clientを使用しています。私は、サーバーにリクエストを送信しています

私のクライアントコード:
完全なコード:http://netty.io/5.0/xref/io/netty/example/http2/client/package-summary.html

HttpResponseHandler responseHandler = initializer.responseHandler(); 
    int streamId = 3; 
    HttpScheme scheme = SSL ? HttpScheme.HTTPS : HttpScheme.HTTP; 
    AsciiString hostName = new AsciiString(HOST + ':' + PORT); 
    System.out.println("Sending request(s)..."); 
    if (URL != null) { 
     System.out.println("with url"); 

     // Create a simple GET request. 
     FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, GET, URL); 
     request.headers().add(HttpHeaderNames.HOST, hostName); 
     request.headers().add(HttpConversionUtil.ExtensionHeaderNames.SCHEME.text(), scheme.name()); 
     request.headers().add(HttpHeaderNames.ACCEPT_ENCODING, HttpHeaderValues.GZIP); 
     request.headers().add(HttpHeaderNames.ACCEPT_ENCODING, HttpHeaderValues.DEFLATE); 
     responseHandler.put(streamId, channel.writeAndFlush(request), channel.newPromise()); 
     streamId += 2; 


    } 

上記のコードは、ようにストリームID 3,5とで正常に動作します。
しかし、ストリームIDを4,6,8などの他の番号に変更すると、上記のコードは機能しません。サーバーから私はまだ私はexample server

答えて

3

ストリームの番号内部のこれらのストリームIDのためのロジックを見つけることができませんストリームID 3,5,7などのメッセージがHTTP/2 specificationによって義務付けられて取得します。

+0

wow ..本当に助けられました。ありがとう。 – shantanu