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 voidchannelInactive(io.netty.channel.ChannelHandlerContext ctx)protected voidchannelRead0(io.netty.channel.ChannelHandlerContext ctx, io.netty.handler.codec.http.websocketx.WebSocketFrame frame)voidexceptionCaught(io.netty.channel.ChannelHandlerContext ctx, Throwable cause)this is called when the client closes abruptly the connectionio.netty.channel.ChannelgetChannel()voidhandlerAdded(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.voidsendReply(WebSocketReply reply)voiduserEventTriggered(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:
handlerAddedin interfaceio.netty.channel.ChannelHandler- Overrides:
handlerAddedin classio.netty.channel.ChannelHandlerAdapter- Throws:
Exception
-
userEventTriggered
public void userEventTriggered(io.netty.channel.ChannelHandlerContext ctx, Object evt) throws Exception- Specified by:
userEventTriggeredin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
userEventTriggeredin 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:
channelRead0in 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 Exceptionthis is called when the client closes abruptly the connection- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelHandler- Specified by:
exceptionCaughtin interfaceio.netty.channel.ChannelInboundHandler- Overrides:
exceptionCaughtin classio.netty.channel.ChannelInboundHandlerAdapter- Throws:
Exception
-
channelInactive
public void channelInactive(io.netty.channel.ChannelHandlerContext ctx) throws Exception- Specified by:
channelInactivein interfaceio.netty.channel.ChannelInboundHandler- Overrides:
channelInactivein 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()
-
-