mina handler和filter问题
我有一个自定义的IoFilter,已经添加到acceptor里了,可是执行结果为什么总是先执行handler,再执行filter呢? 不是应该先执行过滤器,再执行处理类吗? 下面是代码,头疼!
server类
//添加过滤器
acceptor.getFilterChain().addLast("myfilter",new ReferenceCountingFilter(new MyIoFilter()));
// 绑定逻辑处理器
acceptor.setHandler(new ServerHandler());
---------------------------------------------------------------------------------------------------------
过滤器类
public class MyIoFilter implements IoFilter {
@Override
public void messageReceived(NextFilter arg0, IoSession arg1, Object arg2) throws Exception {
arg0.messageReceived(arg1,arg2);
System.out.println("filter messageReceived");
}
---------------------------------------------------------------------------------------------------------
处理类
public class ServerHandler implements IoHandler {
@Override
public void messageReceived(IoSession arg0, Object arg1) throws Exception {
System.out.println("handler messageReceived");
}
-------------------------------------------------------------------------------------------------------------
执行结果
filter init
filter onPreAdd
filter onPostAdd
handler sessionCreated
filter filterWrite
filter sessionCreated
handler sessionOpened
filter sessionOpened
handler messageSent
filter messageSent
handler exceptionCaught
filter exceptionCaught
handler sessionClosed
filter onPreRemove
filter onPostRemove
filter destroy
filter sessionClosed
---------------------------------------------------------------------------------------------------------
大家帮我看看,不是应该先输出 “filter sessionOpened” 再输出“handler sessionOpened”的吗?
谢谢,谢谢,谢谢大家了!