public class WebSocketSession extends StreamSession implements IWebSocketSession
Constructor and Description |
---|
WebSocketSession(IWebSocketHandler handler,
boolean clientMode)
Constructs a Web Socket session associated with a Web Socket handler.
|
WebSocketSession(String name,
IWebSocketHandler handler,
boolean clientMode)
Constructs a named Web Socket session associated with a Web Socket handler.
|
Modifier and Type | Method and Description |
---|---|
ByteBuffer |
allocate(int capacity)
Allocates a byte buffer by using the allocator associated with this session.
|
void |
close(int status)
Writes the Web Socket close frame with given status code and then gently
closes this session.
|
void |
close(int status,
String reason)
Writes the Web Socket close frame with given status code and reason and then
gently closes this session.
|
void |
dirtyClose()
Quickly closes this session without flushing any pending data and without following
close procedure of an application layer (e.g.
|
IFuture<Void> |
execute(Runnable task)
Executes a task in the selector-loop's thread this session is registered
with.
|
void |
executenf(Runnable task)
Executes a task in the selector-loop's thread this session is registered
with.
|
IFuture<Void> |
getCloseFuture()
Gets the future that can be use to wait for the completion of the closing
phase.
|
ICodecPipeline |
getCodecPipeline()
Gets the codec pipeline that is associated with this session.
|
ISessionConfig |
getConfig()
Gets the configuration of this session.
|
IFuture<Void> |
getCreateFuture()
Gets the future that can be use to wait for the completion of the
creation phase.
|
long |
getCreationTime()
Gets the session's creation time in milliseconds.
|
IFuture<Void> |
getEndFuture()
Gets the future that can be use to wait for the completion of the ending
phase.
|
IHandshaker |
getHandshaker()
Returns the Web Socket handshaker associated with this session.
|
long |
getLastIoTime()
Gets the time in milliseconds when I/O operation occurred lastly.
|
long |
getLastReadTime()
Gets the time in milliseconds when read operation occurred lastly.
|
long |
getLastWriteTime()
Gets the time in milliseconds when write operation occurred lastly.
|
IFuture<Void> |
getOpenFuture()
Gets the future that can be use to wait for the completion of the opening
phase.
|
long |
getReadBytes()
Gets the total number of bytes which were read from this session.
|
double |
getReadBytesThroughput()
Gets the number of read bytes per second.
|
IFuture<Void> |
getReadyFuture()
Gets the future that can be use to wait for the completion of the Web Socket
handshake phase.
|
ISessionTimer |
getTimer()
Gets the session timer associated with this session.
|
IWebSocketHandler |
getWebSocketHandler()
Returns the Web Socket handler associated with this session
|
long |
getWrittenBytes()
Gets the total number of bytes which were written to this session.
|
double |
getWrittenBytesThroughput()
Gets the number of written bytes per second.
|
boolean |
isDataCopyingOptimized()
Tells if the processing of data is optimized to reduce data copying between
byte buffers.
|
boolean |
isOpen()
Tells if this session is open.
|
boolean |
isReadSuspended()
Tells if read operations are suspended for this session.
|
boolean |
isWriteSuspended()
Tells if write operations are suspended for this session.
|
void |
quickClose()
Quickly closes this session without flushing any pending data.
|
void |
release(ByteBuffer buffer)
Release given byte buffer by the allocator associated with this session.
|
void |
resumeRead()
Resumes read operations for this session.
|
void |
resumeWrite()
Resumes write operations for this session.
|
void |
suspendRead()
Suspends read operations for this session.
|
void |
suspendWrite()
Suspends write operations for this session.
|
close, getHandler, getLocalAddress, getParent, getPipeline, getRemoteAddress, getState, write, write, write, write, write, write, writenf, writenf, writenf, writenf, writenf, writenf
getAttributes
getId, getName, toString
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getHandler, getParent, getPipeline, write, write, write, write, write, write, writenf, writenf, writenf, writenf, writenf, writenf
allocate, close, dirtyClose, execute, executenf, getAttributes, getCloseFuture, getCodecPipeline, getConfig, getCreateFuture, getCreationTime, getEndFuture, getId, getLastIoTime, getLastReadTime, getLastWriteTime, getLocalAddress, getName, getOpenFuture, getReadBytes, getReadBytesThroughput, getRemoteAddress, getState, getTimer, getWrittenBytes, getWrittenBytesThroughput, isDataCopyingOptimized, isOpen, isReadSuspended, isWriteSuspended, quickClose, release, resumeRead, resumeWrite, suspendRead, suspendWrite
public WebSocketSession(String name, IWebSocketHandler handler, boolean clientMode)
name
- the name for this session, or null
if the
handler's name should be used for this session's namehandler
- the Web Socket handler that should be associated with this
sessionclientMode
- true
if the session should start its
handshaking in "client" modepublic WebSocketSession(IWebSocketHandler handler, boolean clientMode)
handler
- the Web Socket handler that should be associated with this
sessionclientMode
- true
if the session should start its
handshaking in "client" modepublic IFuture<Void> getReadyFuture()
getReadyFuture
in interface ISession
public IWebSocketHandler getWebSocketHandler()
IWebSocketSession
getWebSocketHandler
in interface IWebSocketSession
public IHandshaker getHandshaker()
IWebSocketSession
getHandshaker
in interface IWebSocketSession
public void close(int status)
IWebSocketSession
close
in interface IWebSocketSession
status
- the status code of the close frame, or -1 if the close frame
should not contain the application body.public void close(int status, String reason)
IWebSocketSession
close
in interface IWebSocketSession
status
- the status code of the close frame, or -1 if the close frame
should not contain the application body.reason
- the reason of the close frame. If the status
argument
equals -1 this argument is ignored.public IFuture<Void> getCreateFuture()
ISession
getCreateFuture
in interface ISession
public IFuture<Void> getOpenFuture()
ISession
getOpenFuture
in interface ISession
public IFuture<Void> getCloseFuture()
ISession
getCloseFuture
in interface ISession
public IFuture<Void> getEndFuture()
ISession
getEndFuture
in interface ISession
public ISessionConfig getConfig()
ISession
public ICodecPipeline getCodecPipeline()
ISession
getCodecPipeline
in interface ISession
null
if the session does not
support itpublic boolean isOpen()
ISession
It is equal to:
return getState() == SessionState.OPEN
public void quickClose()
ISession
After returning from this method any consecutive writes will be simply discarded.
quickClose
in interface ISession
public void dirtyClose()
ISession
dirtyClose
in interface ISession
public void suspendRead()
ISession
suspendRead
in interface ISession
public void suspendWrite()
ISession
suspendWrite
in interface ISession
public void resumeRead()
ISession
resumeRead
in interface ISession
public void resumeWrite()
ISession
resumeWrite
in interface ISession
public boolean isReadSuspended()
ISession
isReadSuspended
in interface ISession
true
if suspendedpublic boolean isWriteSuspended()
ISession
isWriteSuspended
in interface ISession
true
if suspendedpublic final long getReadBytes()
ISession
getReadBytes
in interface ISession
public final long getWrittenBytes()
ISession
getWrittenBytes
in interface ISession
public final double getReadBytesThroughput()
ISession
getReadBytesThroughput
in interface ISession
public final double getWrittenBytesThroughput()
ISession
getWrittenBytesThroughput
in interface ISession
public final long getCreationTime()
ISession
getCreationTime
in interface ISession
public final long getLastIoTime()
ISession
getLastIoTime
in interface ISession
public final long getLastReadTime()
ISession
getLastReadTime
in interface ISession
public final long getLastWriteTime()
ISession
getLastWriteTime
in interface ISession
public ISessionTimer getTimer()
ISession
public boolean isDataCopyingOptimized()
ISession
Checking this flag can be helpful in determining if a buffer allocated by the
ISession.allocate(int)
method need to be released after passing it to the
session's write/send methods. For example, if the returned value is
true
the buffer will be released automatically and so it should not
be released by a user's implementation.
isDataCopyingOptimized
in interface ISession
true
if the processing of data is optimizedISessionConfig.optimizeDataCopying()
public ByteBuffer allocate(int capacity)
ISession
public void release(ByteBuffer buffer)
ISession
public IFuture<Void> execute(Runnable task)
ISession
public void executenf(Runnable task)
ISession
This method should be used whenever there will be no need to synchronize on a future associated with the specified task. This will save some resources and may improve performance.
Copyright © 2017–2022 SNF4J.ORG. All rights reserved.