public abstract class BaseWebSocketFilter extends BaseFilter
Filter implementation, which supposed to be placed into a FilterChain right after HTTP
Filter: HttpServerFilter, HttpClientFilter; depending whether it's server or client side. The
BaseWebSocketFilter handles websocket connection, handshake phases and, when receives a websocket frame -
redirects it to appropriate connection (WebSocketApplication, WebSocket) for processing.| Constructor and Description |
|---|
BaseWebSocketFilter()
Constructs a new
BaseWebSocketFilter with a default idle connection
timeout of 15 minutes; |
BaseWebSocketFilter(long wsTimeoutInSeconds)
Constructs a new
BaseWebSocketFilter with a default idle connection
timeout of 15 minutes; |
| Modifier and Type | Method and Description |
|---|---|
protected static HttpResponsePacket |
composeHandshakeError(HttpRequestPacket request,
HandshakeException e) |
NextAction |
handleClose(FilterChainContext ctx)
Method handles Grizzly
Connection close phase. |
NextAction |
handleConnect(FilterChainContext ctx)
Method handles Grizzly
Connection connect phase. |
protected abstract NextAction |
handleHandshake(FilterChainContext ctx,
HttpContent content)
Handle websocket handshake
|
NextAction |
handleRead(FilterChainContext ctx)
Handle Grizzly
Connection read phase. |
NextAction |
handleWrite(FilterChainContext ctx)
Handle Grizzly
Connection write phase. |
protected void |
setIdleTimeout(FilterChainContext ctx) |
createContext, exceptionOccurred, handleAccept, handleEvent, onAdded, onFilterChainChanged, onRemovedpublic BaseWebSocketFilter()
BaseWebSocketFilter with a default idle connection
timeout of 15 minutes;public BaseWebSocketFilter(long wsTimeoutInSeconds)
BaseWebSocketFilter with a default idle connection
timeout of 15 minutes;public NextAction handleConnect(FilterChainContext ctx) throws IOException
Connection connect phase. Check if the Connection is a client-side WebSocket, if yes - creates websocket handshake packet and send it to a server. Otherwise, if it's not websocket
connection - pass processing to the next Filter in a chain.handleConnect in interface FilterhandleConnect in class BaseFilterctx - FilterChainContextNextAction instruction for FilterChain, how it should continue the execution{@link - IOException}IOExceptionpublic NextAction handleClose(FilterChainContext ctx) throws IOException
Connection close phase. Check if the Connection is a WebSocket, if
yes - tries to close the websocket gracefully (sending close frame) and calls WebSocket.onClose(DataFrame). If the Grizzly Connection is not websocket - passes processing to the next
filter in the chain.handleClose in interface FilterhandleClose in class BaseFilterctx - FilterChainContextNextAction instruction for FilterChain, how it should continue the execution{@link - IOException}IOExceptionpublic NextAction handleRead(FilterChainContext ctx) throws IOException
Connection read phase. If the Connection has associated WebSocket object
(websocket connection), we check if websocket handshake has been completed for this connection, if not -
initiate/validate handshake. If handshake has been completed - parse websocket DataFrames one by one and
pass processing to appropriate WebSocket: WebSocketApplication for server- and client- side
connections.handleRead in interface FilterhandleRead in class BaseFilterctx - FilterChainContextNextAction instruction for FilterChain, how it should continue the execution{@link - IOException}IOExceptionpublic NextAction handleWrite(FilterChainContext ctx) throws IOException
Connection write phase. If the Connection has associated WebSocket object
(websocket connection), we assume that message is websocket DataFrame and serialize it into a Buffer.handleWrite in interface FilterhandleWrite in class BaseFilterctx - FilterChainContextNextAction instruction for FilterChain, how it should continue the execution{@link - IOException}IOExceptionprotected abstract NextAction handleHandshake(FilterChainContext ctx, HttpContent content) throws IOException
ctx - FilterChainContextcontent - HTTP messageNextAction instruction for FilterChain, how it should continue the execution{@link - IOException}IOExceptionprotected static HttpResponsePacket composeHandshakeError(HttpRequestPacket request, HandshakeException e)
protected void setIdleTimeout(FilterChainContext ctx)
Copyright © 2014 Oracle Corporation. All Rights Reserved.