Class LegacyWebSocketFrameHandler

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

    public class LegacyWebSocketFrameHandler
    extends io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.websocketx.WebSocketFrame>
    Class for text/binary websocket handling
    • Nested Class Summary

      • Nested classes/interfaces inherited from interface io.netty.channel.ChannelHandler

        io.netty.channel.ChannelHandler.Sharable
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void channelInactive​(io.netty.channel.ChannelHandlerContext ctx)  
      protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.websocketx.WebSocketFrame frame)  
      void exceptionCaught​(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)
      this is called when the client closes abruptly the connection
      io.netty.channel.Channel getChannel()  
      void handlerAdded​(io.netty.channel.ChannelHandlerContext ctx)  
      <T extends com.google.protobuf.Message>
      void
      sendData​(org.yamcs.protobuf.Yamcs.ProtoDataType dataType, T data)
      Sends actual data over the web socket.
      void sendReply​(WebSocketReply reply)  
      void userEventTriggered​(io.netty.channel.ChannelHandlerContext ctx, Object evt)  
      • Methods inherited from class io.netty.channel.SimpleChannelInboundHandler

        acceptInboundMessage, channelRead
      • Methods inherited from class io.netty.channel.ChannelInboundHandlerAdapter

        channelActive, channelReadComplete, channelRegistered, channelUnregistered, channelWritabilityChanged
      • Methods inherited from class io.netty.channel.ChannelHandlerAdapter

        ensureNotSharable, handlerRemoved, isSharable
      • Methods inherited from interface io.netty.channel.ChannelHandler

        handlerRemoved
    • Field Detail

      • CTX_HTTP_REQUEST_INFO

        public static final io.netty.util.AttributeKey<HttpRequestInfo> CTX_HTTP_REQUEST_INFO
    • Constructor Detail

      • LegacyWebSocketFrameHandler

        public LegacyWebSocketFrameHandler​(HttpRequestInfo originalRequestInfo,
                                           int maxDrops,
                                           io.netty.channel.WriteBufferWaterMark writeBufferWaterMark)
    • Method Detail

      • handlerAdded

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

        public void userEventTriggered​(io.netty.channel.ChannelHandlerContext ctx,
                                       Object evt)
                                throws Exception
        Specified by:
        userEventTriggered in interface io.netty.channel.ChannelInboundHandler
        Overrides:
        userEventTriggered in class io.netty.channel.ChannelInboundHandlerAdapter
        Throws:
        Exception
      • channelRead0

        protected void channelRead0​(io.netty.channel.ChannelHandlerContext ctx,
                                    io.netty.handler.codec.http.websocketx.WebSocketFrame frame)
                             throws Exception
        Specified by:
        channelRead0 in class io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.websocketx.WebSocketFrame>
        Throws:
        Exception
      • exceptionCaught

        public void exceptionCaught​(io.netty.channel.ChannelHandlerContext ctx,
                                    Throwable cause)
                             throws Exception
        this is called when the client closes abruptly the connection
        Specified by:
        exceptionCaught in interface io.netty.channel.ChannelHandler
        Specified by:
        exceptionCaught in interface io.netty.channel.ChannelInboundHandler
        Overrides:
        exceptionCaught in class io.netty.channel.ChannelInboundHandlerAdapter
        Throws:
        Exception
      • channelInactive

        public void channelInactive​(io.netty.channel.ChannelHandlerContext ctx)
                             throws Exception
        Specified by:
        channelInactive in interface io.netty.channel.ChannelInboundHandler
        Overrides:
        channelInactive in class io.netty.channel.ChannelInboundHandlerAdapter
        Throws:
        Exception
      • sendData

        public <T extends com.google.protobuf.Message> void sendData​(org.yamcs.protobuf.Yamcs.ProtoDataType dataType,
                                                                     T data)
        Sends actual data over the web socket. If the channel is not or no longer writable, the message is dropped. We do not want to block the calling thread (because that will be a processor thread). The websocket clients will know when the messages have been dropped from the sequence count.
      • getChannel

        public io.netty.channel.Channel getChannel()