if (frame instanceof CloseWebSocketFrame) {
handshaker.close(ctx.channel(), (CloseWebSocketFrame) frame.retain());
} else if (frame instanceof PingWebSocketFrame) {
ctx.nextOutboundMessageBuffer().add(
new PongWebSocketFrame(frame.isFinalFragment(), frame.rsv(), frame.data().retain()));
} else if (frame instanceof TextWebSocketFrame) {
ctx.nextOutboundMessageBuffer().add(frame.retain());
} else if (frame instanceof BinaryWebSocketFrame) {
ctx.nextOutboundMessageBuffer().add(frame.retain());
} else if (frame instanceof ContinuationWebSocketFrame) {