Package org.yamcs.http.websocket
Class LegacyWebSocketFrameHandler
- java.lang.Object
-
- io.netty.channel.ChannelHandlerAdapter
-
- io.netty.channel.ChannelInboundHandlerAdapter
-
- io.netty.channel.SimpleChannelInboundHandler<io.netty.handler.codec.http.websocketx.WebSocketFrame>
-
- org.yamcs.http.websocket.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
-
-
Field Summary
Fields Modifier and Type Field Description static io.netty.util.AttributeKey<HttpRequestInfo>
CTX_HTTP_REQUEST_INFO
-
Constructor Summary
Constructors Constructor Description LegacyWebSocketFrameHandler(HttpRequestInfo originalRequestInfo, int maxDrops, io.netty.channel.WriteBufferWaterMark writeBufferWaterMark)
-
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 connectionio.netty.channel.Channel
getChannel()
void
handlerAdded(io.netty.channel.ChannelHandlerContext ctx)
<T extends com.google.protobuf.Message>
voidsendData(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
-
-
-
-
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 interfaceio.netty.channel.ChannelHandler
- Overrides:
handlerAdded
in classio.netty.channel.ChannelHandlerAdapter
- Throws:
Exception
-
userEventTriggered
public void userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt) throws Exception
- Specified by:
userEventTriggered
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
userEventTriggered
in classio.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 classio.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 interfaceio.netty.channel.ChannelHandler
- Specified by:
exceptionCaught
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
exceptionCaught
in classio.netty.channel.ChannelInboundHandlerAdapter
- Throws:
Exception
-
channelInactive
public void channelInactive(io.netty.channel.ChannelHandlerContext ctx) throws Exception
- Specified by:
channelInactive
in interfaceio.netty.channel.ChannelInboundHandler
- Overrides:
channelInactive
in classio.netty.channel.ChannelInboundHandlerAdapter
- Throws:
Exception
-
sendReply
public void sendReply(WebSocketReply reply)
-
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()
-
-