When creating my Mina Server, I specify this: 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())); The webSocketCodec is one that handles WebSocket handshake stuff. The binaryCodec is the one that parses custom binary protocol messages. In this setup, I expect the following: client sends data -> webSocketCodec.encode -> binaryCodec.encode server writes data -> binaryCodec.encode -> webSocketCodec.encode Unfortunately, only the first step of each flow is called. What am I doing wrong? Can't I use to Protocol Codec Filters after each other?