Class WebSocketSession
- java.lang.Object
-
- org.eclipse.jetty.util.component.AbstractLifeCycle
-
- org.eclipse.jetty.util.component.ContainerLifeCycle
-
- org.eclipse.jetty.websocket.common.WebSocketSession
-
- All Implemented Interfaces:
java.io.Closeable,java.lang.AutoCloseable,Connection.Listener,Container,Destroyable,Dumpable,Dumpable.DumpableContainer,LifeCycle,IncomingFrames,OutgoingFrames,Session,RemoteEndpointFactory,WebSocketSessionScope
- Direct Known Subclasses:
JsrSession
@ManagedObject("A Jetty WebSocket Session") public class WebSocketSession extends ContainerLifeCycle implements Session, RemoteEndpointFactory, WebSocketSessionScope, IncomingFrames, OutgoingFrames, Connection.Listener
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
AbstractLifeCycle.AbstractLifeCycleListener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.io.Connection.Listener
Connection.Listener.Adapter
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Container
Container.InheritedListener, Container.Listener
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.Dumpable
Dumpable.DumpableContainer
-
Nested classes/interfaces inherited from interface org.eclipse.jetty.util.component.LifeCycle
LifeCycle.Listener
-
-
Constructor Summary
Constructors Constructor Description WebSocketSession(WebSocketContainerScope containerScope, java.net.URI requestURI, EventDriver websocket, LogicalConnection connection)
-
Method Summary
All Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description voidcallApplicationOnClose(CloseInfo closeInfo)voidcallApplicationOnError(java.lang.Throwable cause)voidclose()Request a close of the current conversation with a normal status code and no reason phrase.voidclose(int statusCode, java.lang.String reason)Send a websocket Close frame, with status code.voidclose(java.lang.Throwable cause)Close the active session based on the throwablevoidclose(CloseStatus closeStatus)Request Close the current conversation, giving a reason for the closure.voiddisconnect()Harsh disconnectvoiddispatch(java.lang.Runnable runnable)protected voiddoStart()Starts the managed lifecycle beans in the order they were added.protected voiddoStop()Stops the managed lifecycle beans in the reverse order they were added.java.lang.StringdumpSelf()The description of this/self found in the dump.BatchModegetBatchMode()ByteBufferPoolgetBufferPool()java.lang.ClassLoadergetClassLoader()LogicalConnectiongetConnection()WebSocketContainerScopegetContainerScope()The parentWebSocketContainerScopefor this session scope.ExtensionFactorygetExtensionFactory()longgetIdleTimeout()The idle timeout in millisecondsIncomingFramesgetIncomingHandler()java.net.InetSocketAddressgetLocalAddress()Get the address of the local side.OutgoingFramesgetOutgoingHandler()WebSocketPolicygetPolicy()Access the (now read-only)WebSocketPolicyin use for this connection.java.lang.StringgetProtocolVersion()Returns the version of the websocket protocol currently being used.RemoteEndpointgetRemote()Return a reference to the RemoteEndpoint object representing the other end of this conversation.java.net.InetSocketAddressgetRemoteAddress()Get the address of the remote side.java.net.URIgetRequestURI()UpgradeRequestgetUpgradeRequest()Get the UpgradeRequest used to create this sessionUpgradeResponsegetUpgradeResponse()Get the UpgradeResponse used to create this sessionWebSocketSessiongetWebSocketSession()ActiveWebSocketSessionassociated with this scope.voidincomingFrame(Frame frame)Incoming Raw Frames from ParserbooleanisOpen()Return true if and only if the underlying socket is open.booleanisSecure()Return true if and only if the underlying socket is using a secure transport.WebSocketRemoteEndpointnewRemoteEndpoint(LogicalConnection connection, OutgoingFrames outgoingFrames, BatchMode batchMode)voidonClosed(Connection connection)Jetty Connection onSessionClosed eventvoidonOpened(Connection connection)Jetty Connection onOpen eventvoidopen()Open/Activate the sessionvoidoutgoingFrame(Frame frame, WriteCallback callback, BatchMode batchMode)A frame, and optional callback, intended for the network layer.voidsetExtensionFactory(ExtensionFactory extensionFactory)voidsetFuture(java.util.concurrent.CompletableFuture<Session> fut)voidsetIdleTimeout(long ms)Set the timeout in millisecondsvoidsetOutgoingHandler(OutgoingFrames outgoing)voidsetPolicy(WebSocketPolicy policy)Deprecated.voidsetUpgradeRequest(UpgradeRequest request)voidsetUpgradeResponse(UpgradeResponse response)SuspendTokensuspend()Suspend the incoming read events on the connection.java.lang.StringtoString()-
Methods inherited from class org.eclipse.jetty.util.component.ContainerLifeCycle
addBean, addBean, addEventListener, addManaged, contains, destroy, dump, dump, dump, dump, dump, dumpBeans, dumpObject, dumpObjects, dumpStdErr, dumpThis, getBean, getBeans, getBeans, getContainedBeans, getContainedBeans, isAuto, isManaged, isUnmanaged, manage, removeBean, removeBeans, removeEventListener, setBeans, setStopTimeout, start, stop, unmanage, updateBean, updateBean, updateBeans
-
Methods inherited from class org.eclipse.jetty.util.component.AbstractLifeCycle
addLifeCycleListener, getState, getState, getStopTimeout, isFailed, isRunning, isStarted, isStarting, isStopped, isStopping, removeLifeCycleListener, start, stop
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.eclipse.jetty.util.component.Dumpable.DumpableContainer
isDumpable
-
-
-
-
Constructor Detail
-
WebSocketSession
public WebSocketSession(WebSocketContainerScope containerScope, java.net.URI requestURI, EventDriver websocket, LogicalConnection connection)
-
-
Method Detail
-
close
public void close(java.lang.Throwable cause)
Close the active session based on the throwable- Parameters:
cause- the cause for closing the connection
-
close
public void close()
Description copied from interface:SessionRequest 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.
- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Specified by:
closein interfaceSession- See Also:
Session.close(CloseStatus),Session.close(int, String),Session.disconnect()
-
close
public void close(CloseStatus closeStatus)
Description copied from interface:SessionRequest 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.
- Specified by:
closein interfaceSession- Parameters:
closeStatus- the reason for the closure- See Also:
Session.close(),Session.close(int, String),Session.disconnect()
-
close
public void close(int statusCode, java.lang.String reason)Description copied from interface:SessionSend a websocket Close frame, with status code.This will enqueue a graceful close to the remote endpoint.
- Specified by:
closein interfaceSession- Parameters:
statusCode- the status codereason- the (optional) reason. (can be null for no reason)- See Also:
StatusCode,Session.close(),Session.close(CloseStatus),Session.disconnect()
-
disconnect
public void disconnect()
Harsh disconnect- Specified by:
disconnectin interfaceSession- See Also:
Session.close(),Session.close(CloseStatus),Session.close(int, String),Session.disconnect()
-
dispatch
public void dispatch(java.lang.Runnable runnable)
-
doStart
protected void doStart() throws java.lang.ExceptionDescription copied from class:ContainerLifeCycleStarts the managed lifecycle beans in the order they were added.- Overrides:
doStartin classContainerLifeCycle- Throws:
java.lang.Exception
-
doStop
protected void doStop() throws java.lang.ExceptionDescription copied from class:ContainerLifeCycleStops the managed lifecycle beans in the reverse order they were added.- Overrides:
doStopin classContainerLifeCycle- Throws:
java.lang.Exception
-
dumpSelf
public java.lang.String dumpSelf()
Description copied from interface:DumpableThe 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.
-
getBufferPool
public ByteBufferPool getBufferPool()
-
getClassLoader
public java.lang.ClassLoader getClassLoader()
-
getConnection
public LogicalConnection getConnection()
-
getContainerScope
public WebSocketContainerScope getContainerScope()
Description copied from interface:WebSocketSessionScopeThe parentWebSocketContainerScopefor this session scope.- Specified by:
getContainerScopein interfaceWebSocketSessionScope- Returns:
- the websocket container scope
-
getExtensionFactory
public ExtensionFactory getExtensionFactory()
-
getIdleTimeout
public long getIdleTimeout()
The idle timeout in milliseconds- Specified by:
getIdleTimeoutin interfaceSession- Returns:
- the timeout in milliseconds.
-
getIncomingHandler
@ManagedAttribute(readonly=true) public IncomingFrames getIncomingHandler()
-
getLocalAddress
public java.net.InetSocketAddress getLocalAddress()
Description copied from interface:SessionGet the address of the local side.- Specified by:
getLocalAddressin interfaceSession- Returns:
- the local side address
-
getOutgoingHandler
@ManagedAttribute(readonly=true) public OutgoingFrames getOutgoingHandler()
-
getPolicy
public WebSocketPolicy getPolicy()
Description copied from interface:SessionAccess the (now read-only)WebSocketPolicyin use for this connection.
-
getProtocolVersion
public java.lang.String getProtocolVersion()
Description copied from interface:SessionReturns 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:
getProtocolVersionin interfaceSession- Returns:
- the protocol version
-
getRemote
public RemoteEndpoint getRemote()
Description copied from interface:SessionReturn a reference to the RemoteEndpoint object representing the other end of this conversation.
-
getRemoteAddress
public java.net.InetSocketAddress getRemoteAddress()
Description copied from interface:SessionGet the address of the remote side.- Specified by:
getRemoteAddressin interfaceSession- Returns:
- the remote side address
-
getRequestURI
public java.net.URI getRequestURI()
-
getUpgradeRequest
public UpgradeRequest getUpgradeRequest()
Description copied from interface:SessionGet the UpgradeRequest used to create this session- Specified by:
getUpgradeRequestin interfaceSession- Returns:
- the UpgradeRequest used to create this session
-
getUpgradeResponse
public UpgradeResponse getUpgradeResponse()
Description copied from interface:SessionGet the UpgradeResponse used to create this session- Specified by:
getUpgradeResponsein interfaceSession- Returns:
- the UpgradeResponse used to create this session
-
getWebSocketSession
public WebSocketSession getWebSocketSession()
Description copied from interface:WebSocketSessionScopeActiveWebSocketSessionassociated with this scope.- Specified by:
getWebSocketSessionin interfaceWebSocketSessionScope- Returns:
- the websocket session
-
incomingFrame
public void incomingFrame(Frame frame)
Incoming Raw Frames from Parser- Specified by:
incomingFramein interfaceIncomingFrames- Parameters:
frame- the frame to process
-
outgoingFrame
public void outgoingFrame(Frame frame, WriteCallback callback, BatchMode batchMode)
Description copied from interface:OutgoingFramesA frame, and optional callback, intended for the network layer.Note: the frame can undergo many transformations in the various layers and extensions present in the implementation.
If you are implementing a mutation, you are obliged to handle the incoming WriteCallback appropriately.
- Specified by:
outgoingFramein interfaceOutgoingFrames- Parameters:
frame- the frame to eventually write to the network layer.callback- the callback to notify when the frame is written.batchMode- the batch mode requested by the sender.
-
isOpen
public boolean isOpen()
Description copied from interface:SessionReturn true if and only if the underlying socket is open.
-
isSecure
public boolean isSecure()
Description copied from interface:SessionReturn true if and only if the underlying socket is using a secure transport.
-
callApplicationOnClose
public void callApplicationOnClose(CloseInfo closeInfo)
-
callApplicationOnError
public void callApplicationOnError(java.lang.Throwable cause)
-
onClosed
public void onClosed(Connection connection)
Jetty Connection onSessionClosed event- Specified by:
onClosedin interfaceConnection.Listener- Parameters:
connection- the connection that was closed
-
onOpened
public void onOpened(Connection connection)
Jetty Connection onOpen event- Specified by:
onOpenedin interfaceConnection.Listener- Parameters:
connection- the connection that was opened
-
newRemoteEndpoint
public WebSocketRemoteEndpoint newRemoteEndpoint(LogicalConnection connection, OutgoingFrames outgoingFrames, BatchMode batchMode)
- Specified by:
newRemoteEndpointin interfaceRemoteEndpointFactory
-
open
public void open()
Open/Activate the session
-
setExtensionFactory
public void setExtensionFactory(ExtensionFactory extensionFactory)
-
setFuture
public void setFuture(java.util.concurrent.CompletableFuture<Session> fut)
-
setIdleTimeout
public void setIdleTimeout(long ms)
Set the timeout in milliseconds- Specified by:
setIdleTimeoutin interfaceSession- Parameters:
ms- the number of milliseconds.
-
setOutgoingHandler
public void setOutgoingHandler(OutgoingFrames outgoing)
-
setPolicy
@Deprecated public void setPolicy(WebSocketPolicy policy)
Deprecated.
-
setUpgradeRequest
public void setUpgradeRequest(UpgradeRequest request)
-
setUpgradeResponse
public void setUpgradeResponse(UpgradeResponse response)
-
suspend
public SuspendToken suspend()
Description copied from interface:SessionSuspend the incoming read events on the connection.
-
getBatchMode
public BatchMode getBatchMode()
- Returns:
- the default (initial) value for the batching mode.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classAbstractLifeCycle
-
-