예제 #1
0
  @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();
    }
  }
예제 #2
0
 @Override
 public void exceptionCaught(ChannelInboundHandlerContext<Object> ctx, Throwable cause)
     throws Exception {
   cause.printStackTrace();
   ctx.close();
 }
예제 #3
0
 @Override
 public void messageReceived(ChannelInboundHandlerContext<String> ctx, String msg) {
   // Write back as received
   ctx.write(msg);
 }