@Override public void messageReceived(ChannelInboundHandlerContext<Object> ctx, Object msg) throws Exception { Channel ch = ctx.channel(); if (!handshaker.isHandshakeComplete()) { handshaker.finishHandshake(ch, (HttpResponse) msg); System.out.println("WebSocket Client connected!"); return; } if (msg instanceof HttpResponse) { HttpResponse response = (HttpResponse) msg; throw new Exception( "Unexpected HttpResponse (status=" + response.getStatus() + ", content=" + response.getContent().toString(CharsetUtil.UTF_8) + ")"); } WebSocketFrame frame = (WebSocketFrame) msg; if (frame instanceof TextWebSocketFrame) { TextWebSocketFrame textFrame = (TextWebSocketFrame) frame; System.out.println("WebSocket Client received message: " + textFrame.getText()); } else if (frame instanceof PongWebSocketFrame) { System.out.println("WebSocket Client received pong"); } else if (frame instanceof CloseWebSocketFrame) { System.out.println("WebSocket Client received closing"); ch.close(); } }
@Override public void exceptionCaught(ChannelInboundHandlerContext<Object> ctx, Throwable cause) throws Exception { cause.printStackTrace(); ctx.close(); }
@Override public void messageReceived(ChannelInboundHandlerContext<String> ctx, String msg) { // Write back as received ctx.write(msg); }