当前位置: 首页 > 知识库问答 >
问题:

netty中的ctx.write()和ctx.channel().write()有什么不同吗?

隆飞驰
2023-03-14

我注意到ctx在处理程序之间是不同的,即使这些处理程序在相同的管道中,例如

    p.addLast("myHandler1", new MyHandler1());
    p.addLast("myHandler2", new MyHandler2());

在MyHander1中

@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    System.err.println("My 1 ctx: " + ctx + " channel: " + ctx.channel());
    super.channelRead(ctx, msg);
}
@Override
protected void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
    System.err.println("My 2 ctx: " + ctx + " channel: " + ctx.channel());
}
My 1 ctx: io.netty.channel.DefaultChannelHandlerContext@ba9340 channel: [id: 0xdfad3a16, /127.0.0.1:60887 => /127.0.0.1:8090] 
My 2 ctx: io.netty.channel.DefaultChannelHandlerContext@1551d7f channel: [id: 0xdfad3a16, /127.0.0.1:60887 => /127.0.0.1:8090]

那么调用ctx.write()和ctx.channel().write()有什么区别吗?

共有1个答案

赫连心思
2023-03-14

是的。有...channel.write(..)始终从ChannelPipeline的尾部开始,并通过所有ChannelOutboundHandlers。ChannelHandlerContext.write(...)从绑定到ChannelHandlerContext的ChannelHandler的当前位置开始,因此只传递位于它前面的ChannelOutboundHandler。

 类似资料:
  • 问题内容: 我注意到ctx在处理程序之间是不同的,即使这些处理程序位于同一管道中,例如 在MyHander1中 在MyHandler2中 和输出: 我注意到ctx不同,但频道相同 所以在调用ctx.write()和ctx.channel()。write()之间有什么区别吗? 问题答案: 是的,有… Channel.write(..)始终从ChannelPipeline的尾部开始,因此通过所有Cha

  • 想知道是不是一样(在my handler . message received(channelhandler context CTX,object msg)中调用它们)。 如果是相同的,我可以执行以下操作吗 1)将通道添加到哈希图 2)在另一个客户端的其他处理程序中,向最后一个客户端发送消息: 对不起,如果我表达得不好,我不是英国人。感谢您的帮助:)

  • 我想知道是否有可能在netty中抢占先前的writeAndFlush。即,我如何在netty消息中启用一些优先级?如果在writeAndFlush中不太可能强制执行这个优先级,那么有没有可能用eventloop来处理?

  • 有人知道Netty中channelActive和channelRead之间的区别吗? 我通过阅读netty用户指南(https://netty.io/wiki/user-guide-for-4.x.html)来学习netty 我尝试编写一个回显服务器,下面是我的入站。 我已经启动了我的echo服务器,当我尝试使用服务器的IP地址和端口telnet时,除了消息:“丢失到主机的连接”之外,没有任何输出

  • 问题内容: 该java.io.Writer的接口有两个方法称为追加和写入。两者之间有什么区别?它甚至说 这种形式的方法的调用的行为与调用的行为完全相同 那么拥有两个方法名称变体的原因是什么? 问题答案: append()和write()之间有细微的差别。您可以通过阅读Javadocs来解决所有这些问题。暗示。;) write将只接受一个不能为null的String并返回 append将采用任何可以

  • 本文向大家介绍getComputedStyle和element.style有什么不同?相关面试题,主要包含被问及getComputedStyle和element.style有什么不同?时的应答技巧和注意事项,需要的朋友参考一下 element.style 只能获取内联样式属性 getComputedStyle() 可以获取所有样式属性