Package io.undertow.websockets.core
Class AbstractReceiveListener
java.lang.Object
io.undertow.websockets.core.AbstractReceiveListener
- All Implemented Interfaces:
EventListener,org.xnio.ChannelListener<WebSocketChannel>
public abstract class AbstractReceiveListener
extends Object
implements org.xnio.ChannelListener<WebSocketChannel>
A receive listener that performs a callback when it receives a message
- Author:
- Stuart Douglas, baranowb
-
Nested Class Summary
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected intstatic final intMaximum control frame size: https://datatracker.ietf.org/doc/html/rfc6455#section-5.5static final intDefault value for max read frames. -1 - unbounded.static final intDefault size of data frames. -1 - unbounded.static final intDefault numbers of acceptable pings per window.static final intDefault length of websocket ping window in milliseconds.protected intstatic final Stringstatic final StringOption controlling max pings count during window; Defaults toUndertowOptions#DEFAULT_WEB_SOCKETS_PING_MAX_PER_WINDOWstatic final StringOption controlling ping window duration.static final StringMaximum size of BINARY message.static final StringMaximum size of TEXT message.protected longprotected long -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidbufferFullMessage(StreamSourceFrameChannel messageChannel) Utility method that reads a full text or binary message, including all fragmented parts.protected voidcountPing(WebSocketChannel channel) protected longprotected final longprotected final longprotected intprotected final longprotected longprotected longREturn sliding window length in milliseconds.voidhandleEvent(WebSocketChannel channel) protected voidonBinary(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel) protected voidonClose(WebSocketChannel webSocketChannel, StreamSourceFrameChannel channel) protected voidonCloseMessage(CloseMessage cm, WebSocketChannel channel) protected voidonError(WebSocketChannel channel, Throwable error) protected voidonFullBinaryMessage(WebSocketChannel channel, BufferedBinaryMessage message) protected voidonFullCloseMessage(WebSocketChannel channel, BufferedBinaryMessage message) protected voidonFullPingMessage(WebSocketChannel channel, BufferedBinaryMessage message) protected voidonFullPongMessage(WebSocketChannel channel, BufferedBinaryMessage message) protected voidonFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) protected voidonPing(WebSocketChannel webSocketChannel, StreamSourceFrameChannel channel) protected voidonPong(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel) protected voidonText(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel)
-
Field Details
-
WEB_SOCKETS_MAX_READ_FRAMES_PROPERTY
- See Also:
-
DEFAULT_WEB_SOCKETS_MAX_READ_FRAMES
public static final int DEFAULT_WEB_SOCKETS_MAX_READ_FRAMESDefault value for max read frames. -1 - unbounded.- See Also:
-
DEFAULT_WEB_SOCKETS_MESSAGE_SIZE
public static final int DEFAULT_WEB_SOCKETS_MESSAGE_SIZEDefault size of data frames. -1 - unbounded. https://datatracker.ietf.org/doc/html/rfc6455#section-5.6- See Also:
-
DEFAULT_WEB_SOCKETS_CONTROL_FRAME_SIZE
public static final int DEFAULT_WEB_SOCKETS_CONTROL_FRAME_SIZEMaximum control frame size: https://datatracker.ietf.org/doc/html/rfc6455#section-5.5- See Also:
-
WEB_SOCKETS_SIZE_TEXT_PROPERTY
Maximum size of TEXT message.- See Also:
-
WEB_SOCKETS_SIZE_BINARY_PROPERTY
Maximum size of BINARY message.- See Also:
-
DEFAULT_WEB_SOCKETS_PING_MAX_PER_WINDOW
public static final int DEFAULT_WEB_SOCKETS_PING_MAX_PER_WINDOWDefault numbers of acceptable pings per window.- See Also:
-
WEB_SOCKETS_PING_MAX_PER_WINDOW_PROPERTY
Option controlling max pings count during window; Defaults toUndertowOptions#DEFAULT_WEB_SOCKETS_PING_MAX_PER_WINDOW- See Also:
-
DEFAULT_WEB_SOCKETS_PING_WINDOW
public static final int DEFAULT_WEB_SOCKETS_PING_WINDOWDefault length of websocket ping window in milliseconds.- See Also:
-
WEB_SOCKETS_PING_WINDOW_PROPERTY
Option controlling ping window duration. Defaults toUndertowOptions#DEFAULT_WEB_SOCKETS_PING_WINDOW- See Also:
-
windowLength
protected long windowLength -
countInWindow
protected int countInWindow -
maxCountInWindow
protected int maxCountInWindow -
windowTStampThreshold
protected long windowTStampThreshold
-
-
Constructor Details
-
AbstractReceiveListener
public AbstractReceiveListener()
-
-
Method Details
-
countPing
- Throws:
IOException
-
getMaxBinaryBufferSize
protected long getMaxBinaryBufferSize() -
getMaxPongBufferSize
protected final long getMaxPongBufferSize() -
getMaxCloseBufferSize
protected final long getMaxCloseBufferSize() -
getMaxPingBufferSize
protected final long getMaxPingBufferSize() -
getMaxTextBufferSize
protected long getMaxTextBufferSize() -
getMaxPingsPerWindow
protected int getMaxPingsPerWindow() -
getPingWindowLength
protected long getPingWindowLength()REturn sliding window length in milliseconds.- Returns:
-
handleEvent
- Specified by:
handleEventin interfaceorg.xnio.ChannelListener<WebSocketChannel>
-
onPing
protected void onPing(WebSocketChannel webSocketChannel, StreamSourceFrameChannel channel) throws IOException - Throws:
IOException
-
onClose
protected void onClose(WebSocketChannel webSocketChannel, StreamSourceFrameChannel channel) throws IOException - Throws:
IOException
-
onPong
protected void onPong(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel) throws IOException - Throws:
IOException
-
onText
protected void onText(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel) throws IOException - Throws:
IOException
-
onBinary
protected void onBinary(WebSocketChannel webSocketChannel, StreamSourceFrameChannel messageChannel) throws IOException - Throws:
IOException
-
onError
-
bufferFullMessage
Utility method that reads a full text or binary message, including all fragmented parts. Once the full message is read then theonFullTextMessage(WebSocketChannel, BufferedTextMessage)oronFullBinaryMessage(WebSocketChannel, BufferedBinaryMessage)method will be invoked.- Parameters:
messageChannel- The message channel
-
onFullTextMessage
protected void onFullTextMessage(WebSocketChannel channel, BufferedTextMessage message) throws IOException - Throws:
IOException
-
onFullBinaryMessage
protected void onFullBinaryMessage(WebSocketChannel channel, BufferedBinaryMessage message) throws IOException - Throws:
IOException
-
onFullPingMessage
protected void onFullPingMessage(WebSocketChannel channel, BufferedBinaryMessage message) throws IOException - Throws:
IOException
-
onFullPongMessage
protected void onFullPongMessage(WebSocketChannel channel, BufferedBinaryMessage message) throws IOException - Throws:
IOException
-
onFullCloseMessage
protected void onFullCloseMessage(WebSocketChannel channel, BufferedBinaryMessage message) throws IOException - Throws:
IOException
-
onCloseMessage
-