创建我的Mina服务器时,我指定:
this.acceptor = new NioSocketAcceptor();
this.acceptor.getFilterChain().addLast("logger", new LoggingFilter());
this.acceptor.getFilterChain().addLast("webSocketCodec", new ProtocolCodecFilter(new WebSocketCodecFactory()));
this.acceptor.getFilterChain().addLast("binaryCodec", new ProtocolCodecFilter(new DefaultCodecFactory()));
webSocketCodec
是处理WebSocket握手的东西。 binaryCodec
是解析自定义二进制协议消息的那个。
在此设置中,我希望如下:
客户端发送数据 - > webSocketCodec.encode - > binaryCodec.encode
服务器写入数据 - > binaryCodec.encode - > webSocketCodec.encode
不幸的是,只调用每个流程的第一步。我究竟做错了什么?我不能互相使用两个协议编解码器过滤器吗?