Class WebSocketServerProtocolHandler

  • All Implemented Interfaces:
    io.netty.channel.ChannelHandler, io.netty.channel.ChannelInboundHandler, io.netty.channel.ChannelOutboundHandler

    public class WebSocketServerProtocolHandler
    extends io.netty.handler.codec.MessageToMessageDecoder<WebSocketFrame>
    This handler does all the heavy lifting for you to run a websocket server. It takes care of websocket handshaking as well as processing of control frames (Close, Ping, Pong). Text and Binary data frames are passed to the next handler in the pipeline (implemented by you) for processing. See io.netty.example.http.websocketx.html5.WebSocketServer for usage. The implementation of this handler assumes that you just want to run a websocket server and not process other types HTTP requests (like GET and POST). If you wish to support both HTTP requests and websockets in the one server, refer to the io.netty.example.http.websocketx.server.WebSocketServer example. To know once a handshake was done you can intercept the ChannelInboundHandler.userEventTriggered(ChannelHandlerContext, Object) and check if the event was instance of WebSocketServerProtocolHandler.HandshakeComplete, the event will contain extra information about the handshake such as the request and selected subprotocol.
    • Constructor Detail

      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(WebSocketServerProtocolConfig serverConfig)
        Base constructor
        Parameters:
        serverConfig - Server protocol configuration.
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              boolean checkStartsWith)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              boolean checkStartsWith,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch,
                                              boolean checkStartsWith)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch,
                                              boolean checkStartsWith,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch,
                                              boolean checkStartsWith,
                                              boolean dropPongFrames)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean allowExtensions,
                                              int maxFrameSize,
                                              boolean allowMaskMismatch,
                                              boolean checkStartsWith,
                                              boolean dropPongFrames,
                                              long handshakeTimeoutMillis)
      • WebSocketServerProtocolHandler

        public WebSocketServerProtocolHandler​(String websocketPath,
                                              String subprotocols,
                                              boolean checkStartsWith,
                                              boolean dropPongFrames,
                                              long handshakeTimeoutMillis,
                                              WebSocketDecoderConfig decoderConfig)
    • Method Detail

      • handlerAdded

        public void handlerAdded​(io.netty.channel.ChannelHandlerContext ctx)
        Specified by:
        handlerAdded in interface io.netty.channel.ChannelHandler
        Overrides:
        handlerAdded in class io.netty.channel.ChannelHandlerAdapter
      • exceptionCaught

        public void exceptionCaught​(io.netty.channel.ChannelHandlerContext ctx,
                                    Throwable cause)
                             throws Exception
        Specified by:
        exceptionCaught in interface io.netty.channel.ChannelHandler
        Specified by:
        exceptionCaught in interface io.netty.channel.ChannelInboundHandler
        Throws:
        Exception
      • close

        public void close​(io.netty.channel.ChannelHandlerContext ctx,
                          io.netty.channel.ChannelPromise promise)
                   throws Exception
        Specified by:
        close in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • write

        public void write​(io.netty.channel.ChannelHandlerContext ctx,
                          Object msg,
                          io.netty.channel.ChannelPromise promise)
                   throws Exception
        Specified by:
        write in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • bind

        public void bind​(io.netty.channel.ChannelHandlerContext ctx,
                         SocketAddress localAddress,
                         io.netty.channel.ChannelPromise promise)
                  throws Exception
        Specified by:
        bind in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • connect

        public void connect​(io.netty.channel.ChannelHandlerContext ctx,
                            SocketAddress remoteAddress,
                            SocketAddress localAddress,
                            io.netty.channel.ChannelPromise promise)
                     throws Exception
        Specified by:
        connect in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • disconnect

        public void disconnect​(io.netty.channel.ChannelHandlerContext ctx,
                               io.netty.channel.ChannelPromise promise)
                        throws Exception
        Specified by:
        disconnect in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • deregister

        public void deregister​(io.netty.channel.ChannelHandlerContext ctx,
                               io.netty.channel.ChannelPromise promise)
                        throws Exception
        Specified by:
        deregister in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • read

        public void read​(io.netty.channel.ChannelHandlerContext ctx)
                  throws Exception
        Specified by:
        read in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception
      • flush

        public void flush​(io.netty.channel.ChannelHandlerContext ctx)
                   throws Exception
        Specified by:
        flush in interface io.netty.channel.ChannelOutboundHandler
        Throws:
        Exception