我正在尝试使用camel-rabbitmq
来实现HTTP / 2客户端。在此example(第93行)中,他们手动递增netty
并将其放入地图。当响应到来时,它们会查找streamId
标头参数,从而将响应与请求相关联。
我不喜欢自己增加HttpConversionUtil.ExtensionHeaderNames.STREAM_ID
的想法。我可以以某种方式将id netty用于streamId
请求吗?
此外,创建新流需要很多资源吗?或者它只是一个标识符?
答案 0 :(得分:1)
我很确定,此时您无法获得Netty生成和使用的streamId
。另外,我也不喜欢自己增加streamId
的想法,但看起来可以使用当前的API来做到这一点。
我已经检查了Netty来源并找到了下一步:
getStreamId
,在write
方法中用于获取currentStreamId
的值。但我们无法访问此变量。getStreamId
方法使用另一种名为incrementAndGetNextStreamId的方法。因此,我们只能增加并获得新的streamId
值,但无法获得当前值。这两个类都标有注释@UnstableApi
,因此将来这种行为可能会发生变化。
以下是一些相关链接: