网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

java中ChannelHandler的用法详解-创新互联

java 中 ChannelHandler的用法详解

10年积累的成都网站建设、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站策划后付款的网站建设流程,更有南阳免费网站建设让你可以放心的选择与我们合作。

前言:


ChannelHandler处理一个I/O event或者拦截一个I/O操作,在它的ChannelPipeline中将其递交给相邻的下一个handler。

通过继承ChannelHandlerAdapter来代替


因为这个接口有许多的方法需要实现,你或许希望通过继承ChannelHandlerAdapter来代替。

context对象


一个ChannelHandler和一个ChannelHandlerContext对象一起被提供。一个ChannelHander通过一个context对象和其所属的那个ChannelPipeline进行交互。使用context对象,ChannelHandler可以向上或者向下传递events,动态地修改pipeline,或者存储与handler相关的信息(使用AttributeKeys)。

状态管理


一个ChannelHandler经常需要存储一些状态相关的信息。最简单和推荐的方法是使用成员变量:

public interface Message {
  // your methods here
}

public class DataServerHandler extends SimpleChannelInboundHandler {

  private boolean loggedIn;

  @Override
  protected void messageReceived(ChannelHandlerContext ctx, Message message) {
    Channel ch = e.getChannel();
    if (message instanceof LoginMessage) {
      authenticate((LoginMessage) message);
      loggedIn = true;
    } else (message instanceof GetDataMessage) {
      if (loggedIn) {
        ch.write(fetchSecret((GetDataMessage) message));
      } else {
        fail();
      }
    }
  }
  ...
}


网站标题:java中ChannelHandler的用法详解-创新互联
文章网址:http://bjjierui.cn/article/esipc.html

其他资讯