1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package io.netty.example.http.websocketx.server;
17
18 import java.util.Locale;
19
20 import io.netty.channel.ChannelHandlerContext;
21 import io.netty.channel.SimpleChannelInboundHandler;
22 import io.netty.handler.codec.http.websocketx.TextWebSocketFrame;
23 import io.netty.handler.codec.http.websocketx.WebSocketFrame;
24 import org.slf4j.Logger;
25 import org.slf4j.LoggerFactory;
26
27
28
29
30 public class WebSocketFrameHandler extends SimpleChannelInboundHandler<WebSocketFrame> {
31
32 private static final Logger logger = LoggerFactory.getLogger(WebSocketFrameHandler.class);
33
34 @Override
35 protected void channelRead0(ChannelHandlerContext ctx, WebSocketFrame frame) throws Exception {
36
37
38 if (frame instanceof TextWebSocketFrame) {
39
40 String request = ((TextWebSocketFrame) frame).text();
41 logger.info("{} received {}", ctx.channel(), request);
42 ctx.channel().writeAndFlush(new TextWebSocketFrame(request.toUpperCase(Locale.US)));
43 } else {
44 String message = "unsupported frame type: " + frame.getClass().getName();
45 throw new UnsupportedOperationException(message);
46 }
47 }
48 }