这是一个(永久(链接,指向我有一个问题的野外示例,该示例来自Netty自己的示例。 有问题的例子本身并不重要,只是它显示了我想知道的模式:
https://github.com/netty/netty/blob/b26a61acd1bde5b6fca21026cd9123a38f277ad6/example/src/main/java/io/netty/example/http2/helloworld/multiplex/server/Http2ServerInitializer.java#L97-L103
我在下面摘录了它:
@Override
protected void channelRead0(ChannelHandlerContext ctx, HttpMessage msg) throws Exception {
ChannelPipeline pipeline = ctx.pipeline();
ChannelHandlerContext thisCtx = pipeline.context(this);
/* ... */
在这里,我们有一个通过ChannelHandlerContext
的ChannelInboundAdapter
。 好。
不过,我在这里摘录的方法的前两行跳过了一些箍来获得"正确的"ChannelHandlerContext
,这意味着(无论如何,对我来说(提供给此方法的ChannelHandlerContext
在某种程度上不是"属于"这个ChannelHandler
。
在什么情况下需要这种跳箍?
感谢您提出这个问题...这实际上是示例中的"错误",完全没有必要。只需使用 ctx :)
对示例的建议修复:
https://github.com/netty/netty/pull/9276