:
/**
* * <strong>Please keep in mind that this method will be renamed to
* {@code messageReceived(ChannelHandlerContext, I)} in 5.0.</strong>
*/
@Override
public void channelRead0(ChannelHandlerContext ctx, Object msg) throws Exception {
Channel ch = ctx.channel();
if (!handshaker.isHandshakeComplete()) {
handshaker.finishHandshake(ch, (FullHttpResponse) msg);
l.error("WebSocket Client connected!");
handshakeFuture.setSuccess();
return;
}
if (msg instanceof FullHttpResponse) {
FullHttpResponse response = (FullHttpResponse) msg;
throw new IllegalStateException("Unexpected FullHttpResponse (getStatus=" + response.status() + ", content="
+ response.content().toString(CharsetUtil.UTF_8) + ')');
}
WebSocketFrame frame = (WebSocketFrame) msg;
if (frame instanceof TextWebSocketFrame) {
TextWebSocketFrame textFrame = (TextWebSocketFrame) frame;
l.info("WebSocket Client received message:{} ", textFrame.text());
//needed if the server close the socket if no ping send for long
//better to send the ping with a timer
// it allwos to choose the rate
ch.write(new PingWebSocketFrame());
} else if (frame instanceof PongWebSocketFrame) {
l.info("WebSocket Client received pong");
} else if (frame instanceof CloseWebSocketFrame) {
l.info("WebSocket Client received closing");
ch.close();
}
}