Package org.atmosphere.websocket
Class DefaultWebSocketProcessor
- java.lang.Object
-
- org.atmosphere.websocket.DefaultWebSocketProcessor
-
- All Implemented Interfaces:
java.io.Serializable,WebSocketPingPongListener,WebSocketProcessor
public class DefaultWebSocketProcessor extends java.lang.Object implements WebSocketProcessor, java.io.Serializable, WebSocketPingPongListener
Like theAsynchronousProcessorclass, this class is responsible for dispatching WebSocket request to the properWebSocketimplementation. This class can be extended in order to support any protocol running on top websocket.- Author:
- Jeanfrancois Arcand
- See Also:
- Serialized Form
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.atmosphere.websocket.WebSocketProcessor
WebSocketProcessor.WebSocketException, WebSocketProcessor.WebSocketHandlerProxy
-
-
Constructor Summary
Constructors Constructor Description DefaultWebSocketProcessor()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intbyteBufferMaxSize()DefaultWebSocketProcessorbyteBufferMaxSize(int byteBufferMaxSize)intcharBufferMaxSize()DefaultWebSocketProcessorcharBufferMaxSize(int charBufferMaxSize)voidclose(WebSocket webSocket, int closeCode)Invked when the WebServer is closing the native WebSocketlongclosingTime()WebSocketProcessorconfigure(AtmosphereConfig config)Configure, or post construct a WebSocketProcessorstatic java.util.Map<java.lang.String,java.lang.String>configureHeader(AtmosphereRequest request)voiddestroy()Destroy all resources associated with this class.booleandestroyable()voiddispatch(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse r)Dispatch to request/response to theAsyncSupportimplementation as it was a normal HTTP request.protected voiddispatchReader(WebSocket webSocket, java.io.Reader r)protected voiddispatchStream(WebSocket webSocket, java.io.InputStream is)booleanexecuteAsync()voidexecuteClose(WebSocket webSocket, int closeCode)java.util.Map<java.lang.String,WebSocketProcessor.WebSocketHandlerProxy>handlers()booleanhandshake(javax.servlet.http.HttpServletRequest request)Determine if the WebSocket's handshake data can be processed, or if the request be cancelled.booleaninvokeInterceptors()voidinvokeWebSocketProtocol(WebSocket webSocket, byte[] data, int offset, int length)Invoked when a WebSocket message gets received from the underlying containervoidinvokeWebSocketProtocol(WebSocket webSocket, java.io.InputStream stream)Invoked when a WebSocket message gets received from the underlying containervoidinvokeWebSocketProtocol(WebSocket webSocket, java.io.Reader reader)Invoked when a WebSocket message gets received from the underlying containervoidinvokeWebSocketProtocol(WebSocket webSocket, java.lang.String webSocketMessage)Invoked when a WebSocket message gets received from the underlying containerEndpointMapper<WebSocketProcessor.WebSocketHandlerProxy>mapper()voidnotifyListener(WebSocket webSocket, WebSocketEventListener.WebSocketEvent event)Notify allWebSocketEventListenervoidonPing(WebSocket webSocket, byte[] payload, int offset, int length)Handle WebSocket PINGvoidonPong(WebSocket webSocket, byte[] payload, int offset, int length)Handle WebSocket PONGvoidopen(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse response)Invoked when a WebSocket gets opened by the underlying containerprotected voidoptimizeMapping()protected WebSocketHandlerpostProcessMapping(WebSocket webSocket, AtmosphereRequest request, WebSocketProcessor.WebSocketHandlerProxy w)WebSocketProcessorregisterWebSocketHandler(java.lang.String path, WebSocketProcessor.WebSocketHandlerProxy webSockethandler)Register aWebSocketHandlerbooleanwildcardMapping()DefaultWebSocketProcessorwildcardMapping(boolean wildcardMapping)
-
-
-
Method Detail
-
configure
public WebSocketProcessor configure(AtmosphereConfig config)
Description copied from interface:WebSocketProcessorConfigure, or post construct a WebSocketProcessor- Specified by:
configurein interfaceWebSocketProcessor- Parameters:
config- anAtmosphereConfig- Returns:
- this
-
handshake
public boolean handshake(javax.servlet.http.HttpServletRequest request)
Description copied from interface:WebSocketProcessorDetermine if the WebSocket's handshake data can be processed, or if the request be cancelled. Since it's container related native API, theHttpServletRequestmight be null, so implementation must check for null.- Specified by:
handshakein interfaceWebSocketProcessor- Parameters:
request-HttpServletRequest- Returns:
- true if the processing can continue, false if not.
-
registerWebSocketHandler
public WebSocketProcessor registerWebSocketHandler(java.lang.String path, WebSocketProcessor.WebSocketHandlerProxy webSockethandler)
Description copied from interface:WebSocketProcessorRegister aWebSocketHandler- Specified by:
registerWebSocketHandlerin interfaceWebSocketProcessor- Parameters:
path- the URI mapping the WebSocketHandlerwebSockethandler- an instance ofWebSocketProcessor.WebSocketHandlerProxy- Returns:
- this
-
open
public final void open(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse response) throws java.io.IOException
Description copied from interface:WebSocketProcessorInvoked when a WebSocket gets opened by the underlying container- Specified by:
openin interfaceWebSocketProcessor- Throws:
java.io.IOException
-
postProcessMapping
protected WebSocketHandler postProcessMapping(WebSocket webSocket, AtmosphereRequest request, WebSocketProcessor.WebSocketHandlerProxy w)
-
invokeWebSocketProtocol
public void invokeWebSocketProtocol(WebSocket webSocket, java.lang.String webSocketMessage)
Description copied from interface:WebSocketProcessorInvoked when a WebSocket message gets received from the underlying container- Specified by:
invokeWebSocketProtocolin interfaceWebSocketProcessor
-
invokeWebSocketProtocol
public void invokeWebSocketProtocol(WebSocket webSocket, byte[] data, int offset, int length)
Description copied from interface:WebSocketProcessorInvoked when a WebSocket message gets received from the underlying container- Specified by:
invokeWebSocketProtocolin interfaceWebSocketProcessor
-
invokeWebSocketProtocol
public void invokeWebSocketProtocol(WebSocket webSocket, java.io.InputStream stream)
Description copied from interface:WebSocketProcessorInvoked when a WebSocket message gets received from the underlying container- Specified by:
invokeWebSocketProtocolin interfaceWebSocketProcessor
-
invokeWebSocketProtocol
public void invokeWebSocketProtocol(WebSocket webSocket, java.io.Reader reader)
Description copied from interface:WebSocketProcessorInvoked when a WebSocket message gets received from the underlying container- Specified by:
invokeWebSocketProtocolin interfaceWebSocketProcessor
-
dispatch
public final void dispatch(WebSocket webSocket, AtmosphereRequest request, AtmosphereResponse r)
Dispatch to request/response to theAsyncSupportimplementation as it was a normal HTTP request.- Parameters:
request- aAtmosphereRequestr- aAtmosphereResponse
-
close
public void close(WebSocket webSocket, int closeCode)
Description copied from interface:WebSocketProcessorInvked when the WebServer is closing the native WebSocket- Specified by:
closein interfaceWebSocketProcessor
-
executeClose
public void executeClose(WebSocket webSocket, int closeCode)
-
destroy
public void destroy()
Description copied from interface:WebSocketProcessorDestroy all resources associated with this class.- Specified by:
destroyin interfaceWebSocketProcessor
-
notifyListener
public void notifyListener(WebSocket webSocket, WebSocketEventListener.WebSocketEvent event)
Description copied from interface:WebSocketProcessorNotify allWebSocketEventListener- Specified by:
notifyListenerin interfaceWebSocketProcessor
-
configureHeader
public static final java.util.Map<java.lang.String,java.lang.String> configureHeader(AtmosphereRequest request)
-
dispatchStream
protected void dispatchStream(WebSocket webSocket, java.io.InputStream is) throws java.io.IOException
- Throws:
java.io.IOException
-
dispatchReader
protected void dispatchReader(WebSocket webSocket, java.io.Reader r) throws java.io.IOException
- Throws:
java.io.IOException
-
optimizeMapping
protected void optimizeMapping()
-
wildcardMapping
public boolean wildcardMapping()
-
wildcardMapping
public DefaultWebSocketProcessor wildcardMapping(boolean wildcardMapping)
-
handlers
public java.util.Map<java.lang.String,WebSocketProcessor.WebSocketHandlerProxy> handlers()
-
executeAsync
public boolean executeAsync()
-
destroyable
public boolean destroyable()
-
byteBufferMaxSize
public int byteBufferMaxSize()
-
byteBufferMaxSize
public DefaultWebSocketProcessor byteBufferMaxSize(int byteBufferMaxSize)
-
charBufferMaxSize
public int charBufferMaxSize()
-
charBufferMaxSize
public DefaultWebSocketProcessor charBufferMaxSize(int charBufferMaxSize)
-
closingTime
public long closingTime()
-
mapper
public EndpointMapper<WebSocketProcessor.WebSocketHandlerProxy> mapper()
-
invokeInterceptors
public boolean invokeInterceptors()
-
onPong
public void onPong(WebSocket webSocket, byte[] payload, int offset, int length)
Description copied from interface:WebSocketPingPongListenerHandle WebSocket PONG- Specified by:
onPongin interfaceWebSocketPingPongListener- Parameters:
webSocket-WebSocketpayload- the received bytesoffset- the offsetlength- the length
-
onPing
public void onPing(WebSocket webSocket, byte[] payload, int offset, int length)
Description copied from interface:WebSocketPingPongListenerHandle WebSocket PING- Specified by:
onPingin interfaceWebSocketPingPongListener- Parameters:
webSocket-WebSocketpayload- the received bytesoffset- the offsetlength- the length
-
-