2017-04-21 23 views
1

我正在使用Netty来设置一个简单的http/2服务器。我使用this作为http/2服务器的例子。为什么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等,上述代码不起作用。从服务器我仍然得到流的id 3,5,7等消息我无法找到这些流id的内部逻辑example server

回答