0

我刚开始使用 Netty,我有一个关于Channel和的问题ChannelHandlerContext

从我目前所读到的内容来看,Channel可以看作是对底层套接字的抽象IO,而ChannelHandlerContext它是一个用于在通道管道内的通道处理程序之间传递信息的对象。

以上准确吗?

因为现在我正在查看一些使用 Netty 和在线示例的代码库,所以我发现似乎在 onChannel和 on 上都有相同的操作ChannelHandlerContext。例如:

ctx.channel().write();
vs
ctx.write();

或者

ctx.channel().alloc()
vs
ctx.alloc()

问题是,为什么这些类似的操作都定义在 Channel and also onChannelHandlerContext 上?它们有什么不同吗?在什么条件下应该优先选择一个?

4

1 回答 1

1

Channel.* 从管道的尾部开始,而Channel.* 从上下文所属的处理程序开始。通常在ChannelHandler你总是想用的ChannelHandlerContext地方,而在外面你最想用的Channel

于 2021-01-28T16:16:02.420 回答