Class WebSocketSession
- All Implemented Interfaces:
Closeable
,AutoCloseable
,Dumpable
,Session
,SuspendToken
,WebSocketPolicy
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
Field Summary
-
Constructor Summary
ConstructorDescriptionWebSocketSession
(WebSocketContainer container, CoreSession coreSession, JettyWebSocketFrameHandler frameHandler) -
Method Summary
Modifier and TypeMethodDescriptionvoid
close()
Request a close of the current conversation with a normal status code and no reason phrase.void
Send a websocket Close frame, with status code.void
close
(int statusCode, String reason, WriteCallback callback) Send a websocket Close frame, with status code.void
close
(CloseStatus closeStatus) Request Close the current conversation, giving a reason for the closure.void
Issue a harsh disconnect of the underlying connection.void
dump
(Appendable out, String indent) Dump this object (and children) into an Appendable using the provided indent after any new lines.dumpSelf()
The description of this/self found in the dump.The duration that a websocket may be idle before being closed by the implementationint
The input (read from network layer) buffer size.The Local Socket Address for the active Sessionlong
Get the maximum size of a binary message during parsing.long
The maximum payload size of any WebSocket Frame which can be received.long
Get the maximum size of a text message during parsing.int
The output (write to network layer) buffer size.Returns the version of the websocket protocol currently being used.Return a reference to the RemoteEndpoint object representing the other end of this conversation.The Remote Socket Address for the active SessionGet the UpgradeRequest used to create this sessionGet the UpgradeResponse used to create this sessionboolean
If true, frames are automatically fragmented to respect the maximum frame size.boolean
isOpen()
Return true if and only if the underlying socket is open.boolean
isSecure()
Return true if and only if the underlying socket is using a secure transport.void
resume()
Resume a previously suspended connection.void
setAutoFragment
(boolean autoFragment) If set to true, frames are automatically fragmented to respect the maximum frame size.void
setIdleTimeout
(Duration duration) The duration that a websocket may be idle before being closed by the implementationvoid
setInputBufferSize
(int size) The input (read from network layer) buffer size.void
setMaxBinaryMessageSize
(long size) The maximum size of a binary message during parsing/generating.void
setMaxFrameSize
(long maxFrameSize) The maximum payload size of any WebSocket Frame which can be received.void
setMaxTextMessageSize
(long size) The maximum size of a text message during parsing/generating.void
setOutputBufferSize
(int size) The output (write to network layer) buffer size.suspend()
Suspend the delivery of incoming WebSocket frames.toString()
-
Constructor Details
-
WebSocketSession
public WebSocketSession(WebSocketContainer container, CoreSession coreSession, JettyWebSocketFrameHandler frameHandler)
-
-
Method Details
-
close
public void close()Description copied from interface:Session
Request a close of the current conversation with a normal status code and no reason phrase.This will enqueue a graceful close to the remote endpoint.
-
close
Description copied from interface:Session
Request Close the current conversation, giving a reason for the closure. Note the websocket spec defines the acceptable uses of status codes and reason phrases.This will enqueue a graceful close to the remote endpoint.
-
close
Description copied from interface:Session
Send a websocket Close frame, with status code.This will enqueue a graceful close to the remote endpoint.
-
close
Description copied from interface:Session
Send a websocket Close frame, with status code.This will enqueue a graceful close to the remote endpoint.
-
getBehavior
- Specified by:
getBehavior
in interfaceWebSocketPolicy
-
getIdleTimeout
Description copied from interface:WebSocketPolicy
The duration that a websocket may be idle before being closed by the implementation- Specified by:
getIdleTimeout
in interfaceWebSocketPolicy
- Returns:
- the timeout duration
-
getInputBufferSize
public int getInputBufferSize()Description copied from interface:WebSocketPolicy
The input (read from network layer) buffer size.This is the raw read operation buffer size, before the parsing of the websocket frames.
- Specified by:
getInputBufferSize
in interfaceWebSocketPolicy
- Returns:
- the raw network buffer input size.
-
getOutputBufferSize
public int getOutputBufferSize()Description copied from interface:WebSocketPolicy
The output (write to network layer) buffer size.This is the raw write operation buffer size and has no relationship to the websocket frame.
- Specified by:
getOutputBufferSize
in interfaceWebSocketPolicy
- Returns:
- the raw network buffer output size.
-
getMaxBinaryMessageSize
public long getMaxBinaryMessageSize()Description copied from interface:WebSocketPolicy
Get the maximum size of a binary message during parsing.This is a memory conservation option, memory over this limit will not be allocated by Jetty for handling binary messages. This applies to individual frames, whole message handling, and partial message handling.
Binary messages over this maximum will result in a close code 1009
StatusCode.MESSAGE_TOO_LARGE
- Specified by:
getMaxBinaryMessageSize
in interfaceWebSocketPolicy
- Returns:
- the maximum size of a binary message
-
getMaxTextMessageSize
public long getMaxTextMessageSize()Description copied from interface:WebSocketPolicy
Get the maximum size of a text message during parsing.This is a memory conservation option, memory over this limit will not be allocated by Jetty for handling text messages. This applies to individual frames, whole message handling, and partial message handling.
Text messages over this maximum will result in a close code 1009
StatusCode.MESSAGE_TOO_LARGE
- Specified by:
getMaxTextMessageSize
in interfaceWebSocketPolicy
- Returns:
- the maximum size of a text message.
-
getMaxFrameSize
public long getMaxFrameSize()Description copied from interface:WebSocketPolicy
The maximum payload size of any WebSocket Frame which can be received.- Specified by:
getMaxFrameSize
in interfaceWebSocketPolicy
- Returns:
- the maximum size of a WebSocket Frame.
-
isAutoFragment
public boolean isAutoFragment()Description copied from interface:WebSocketPolicy
If true, frames are automatically fragmented to respect the maximum frame size.- Specified by:
isAutoFragment
in interfaceWebSocketPolicy
- Returns:
- whether to automatically fragment incoming WebSocket Frames.
-
setIdleTimeout
Description copied from interface:WebSocketPolicy
The duration that a websocket may be idle before being closed by the implementation- Specified by:
setIdleTimeout
in interfaceWebSocketPolicy
- Parameters:
duration
- the timeout duration (may not be null or negative)
-
setInputBufferSize
public void setInputBufferSize(int size) Description copied from interface:WebSocketPolicy
The input (read from network layer) buffer size.- Specified by:
setInputBufferSize
in interfaceWebSocketPolicy
- Parameters:
size
- the size in bytes
-
setOutputBufferSize
public void setOutputBufferSize(int size) Description copied from interface:WebSocketPolicy
The output (write to network layer) buffer size.- Specified by:
setOutputBufferSize
in interfaceWebSocketPolicy
- Parameters:
size
- the size in bytes
-
setMaxBinaryMessageSize
public void setMaxBinaryMessageSize(long size) Description copied from interface:WebSocketPolicy
The maximum size of a binary message during parsing/generating.Binary messages over this maximum will result in a close code 1009
StatusCode.MESSAGE_TOO_LARGE
- Specified by:
setMaxBinaryMessageSize
in interfaceWebSocketPolicy
- Parameters:
size
- the maximum allowed size of a binary message.
-
setMaxTextMessageSize
public void setMaxTextMessageSize(long size) Description copied from interface:WebSocketPolicy
The maximum size of a text message during parsing/generating.Text messages over this maximum will result in a close code 1009
StatusCode.MESSAGE_TOO_LARGE
- Specified by:
setMaxTextMessageSize
in interfaceWebSocketPolicy
- Parameters:
size
- the maximum allowed size of a text message.
-
setMaxFrameSize
public void setMaxFrameSize(long maxFrameSize) Description copied from interface:WebSocketPolicy
The maximum payload size of any WebSocket Frame which can be received.WebSocket Frames over this maximum will result in a close code 1009
StatusCode.MESSAGE_TOO_LARGE
- Specified by:
setMaxFrameSize
in interfaceWebSocketPolicy
- Parameters:
maxFrameSize
- the maximum allowed size of a WebSocket Frame.
-
setAutoFragment
public void setAutoFragment(boolean autoFragment) Description copied from interface:WebSocketPolicy
If set to true, frames are automatically fragmented to respect the maximum frame size.- Specified by:
setAutoFragment
in interfaceWebSocketPolicy
- Parameters:
autoFragment
- whether to automatically fragment incoming WebSocket Frames.
-
getProtocolVersion
Description copied from interface:Session
Returns the version of the websocket protocol currently being used. This is taken as the value of the Sec-WebSocket-Version header used in the opening handshake. i.e. "13".- Specified by:
getProtocolVersion
in interfaceSession
- Returns:
- the protocol version
-
getRemote
Description copied from interface:Session
Return a reference to the RemoteEndpoint object representing the other end of this conversation. -
isOpen
public boolean isOpen()Description copied from interface:Session
Return true if and only if the underlying socket is open. -
isSecure
public boolean isSecure()Description copied from interface:Session
Return true if and only if the underlying socket is using a secure transport. -
disconnect
public void disconnect()Description copied from interface:Session
Issue a harsh disconnect of the underlying connection.This will terminate the connection, without sending a websocket close frame.
Once called, any read/write activity on the websocket from this point will be indeterminate.
Once the underlying connection has been determined to be closed, the various onClose() events (either
WebSocketConnectionListener.onWebSocketClose(int, String)
orOnWebSocketClose
) will be called on your websocket.- Specified by:
disconnect
in interfaceSession
- See Also:
-
getLocalAddress
Description copied from interface:Session
The Local Socket Address for the active SessionDo not assume that this will return a
InetSocketAddress
in all cases. Use of various proxies, and even UnixSockets can result a SocketAddress being returned without supportingInetSocketAddress
- Specified by:
getLocalAddress
in interfaceSession
- Returns:
- the SocketAddress for the local connection, or null if not supported by Session
-
getRemoteAddress
Description copied from interface:Session
The Remote Socket Address for the active SessionDo not assume that this will return a
InetSocketAddress
in all cases. Use of various proxies, and even UnixSockets can result a SocketAddress being returned without supportingInetSocketAddress
- Specified by:
getRemoteAddress
in interfaceSession
- Returns:
- the SocketAddress for the remote connection, or null if not supported by Session
-
getUpgradeRequest
Description copied from interface:Session
Get the UpgradeRequest used to create this session- Specified by:
getUpgradeRequest
in interfaceSession
- Returns:
- the UpgradeRequest used to create this session
-
getUpgradeResponse
Description copied from interface:Session
Get the UpgradeResponse used to create this session- Specified by:
getUpgradeResponse
in interfaceSession
- Returns:
- the UpgradeResponse used to create this session
-
suspend
Description copied from interface:Session
Suspend the delivery of incoming WebSocket frames.If this is called from inside the scope of the message handler the suspend takes effect immediately. If suspend is called outside the scope of the message handler then the call may take effect after 1 more frame is delivered.
-
resume
public void resume()Description copied from interface:SuspendToken
Resume a previously suspended connection.- Specified by:
resume
in interfaceSuspendToken
-
getCoreSession
-
dump
Description copied from interface:Dumpable
Dump this object (and children) into an Appendable using the provided indent after any new lines. The indent should not be applied to the first object dumped.- Specified by:
dump
in interfaceDumpable
- Parameters:
out
- The appendable to dump toindent
- The indent to apply after any new lines.- Throws:
IOException
- if unable to write to Appendable
-
dumpSelf
Description copied from interface:Dumpable
The description of this/self found in the dump. Allows for alternative representation of Object other then .toString() where the long form output of toString() is represented in a cleaner way within the dump infrastructure. -
toString
-