Server 为什么netty http2服务器总是对streamId使用奇数

Server 为什么netty http2服务器总是对streamId使用奇数,server,netty,http2,Server,Netty,Http2,我正在使用Netty设置一个简单的http/2服务器。我使用这个示例作为http/2服务器 为了测试这个服务器,我使用了netty示例 我向服务器发送请求的客户端代码: 完整代码: 上述代码在流id为3、5等情况下运行良好。 但当我将流id更改为任何其他数字(如4、6、8等)时,上述代码不起作用。我仍然从服务器获取流id 3、5、7等的消息。我无法在服务器中找到这些流id的逻辑 HttpResponseHandler responseHandler = initializer.respo

我正在使用Netty设置一个简单的http/2服务器。我使用这个示例作为http/2服务器

为了测试这个服务器,我使用了netty示例

我向服务器发送请求的客户端代码:
完整代码:

上述代码在流id为3、5等情况下运行良好。

但当我将流id更改为任何其他数字(如4、6、8等)时,上述代码不起作用。我仍然从服务器获取流id 3、5、7等的消息。我无法在服务器中找到这些流id的逻辑

    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;


    }