public abstract class AbstractWebSocketConnection extends AbstractConnection implements LogicalConnection, IOState.ConnectionStateListener, Dumpable
LogicalConnection
within the framework of the new Connection
framework of jetty-io
.Modifier and Type | Class and Description |
---|---|
class |
AbstractWebSocketConnection.OnCloseLocalCallback |
class |
AbstractWebSocketConnection.OnDisconnectCallback |
static class |
AbstractWebSocketConnection.Stats |
AbstractConnection.FillingInterestedCallback, AbstractConnection.NestedState, AbstractConnection.State
Connection.Listener
EXECUTE_ONFILLABLE, FILL_INTERESTED, FILLING, FILLING_FILL_INTERESTED, IDLE, REFILLING
Constructor and Description |
---|
AbstractWebSocketConnection(EndPoint endp,
Executor executor,
Scheduler scheduler,
WebSocketPolicy policy,
ByteBufferPool bufferPool) |
Modifier and Type | Method and Description |
---|---|
void |
close()
Performs a logical close of this connection.
|
void |
close(int statusCode,
String reason)
Close the connection.
|
void |
disconnect()
Terminate the connection (no close frame sent)
|
String |
dump() |
void |
dump(Appendable out,
String indent) |
protected void |
execute(Runnable task) |
void |
fillInterested()
Utility method to be called to register read interest.
|
ByteBufferPool |
getBufferPool()
Get the ByteBufferPool in use by the connection
|
Executor |
getExecutor()
Get the Executor used by this connection.
|
List<ExtensionConfig> |
getExtensions()
Get the list of extensions in use.
|
Generator |
getGenerator() |
long |
getIdleTimeout()
Get the read/write idle timeout.
|
IOState |
getIOState()
Get the IOState of the connection.
|
long |
getMaxIdleTimeout()
Set the maximum number of milliseconds of idleness before the connection is closed/disconnected, (ie no frames are either sent or received)
|
Parser |
getParser() |
WebSocketPolicy |
getPolicy()
The policy that the connection is running under.
|
InetSocketAddress |
getRemoteAddress()
Get the remote Address in use for this connection.
|
Scheduler |
getScheduler() |
WebSocketSession |
getSession()
Get the Session for this connection
|
AbstractWebSocketConnection.Stats |
getStats() |
boolean |
isOpen()
Test if logical connection is still open
|
boolean |
isReading()
Tests if the connection is actively reading.
|
void |
onClose()
Physical connection disconnect.
|
void |
onConnectionStateChange(ConnectionState state) |
void |
onFillable()
Callback method invoked when the endpoint is ready to be read.
|
protected void |
onFillInterestedFailed(Throwable cause)
Callback method invoked when the endpoint failed to be ready to be read.
|
void |
onOpen()
Callback method invoked when this
Connection is opened. |
protected boolean |
onReadTimeout()
Event for no activity on connection (read or write)
|
void |
outgoingFrame(Frame frame,
WriteCallback callback,
BatchMode batchMode)
Frame from API, User, or Internal implementation destined for network.
|
void |
resume()
Resume a previously suspended connection.
|
void |
setExtensions(List<ExtensionConfig> extensions)
Get the list of extensions in use.
|
void |
setInputBufferSize(int inputBufferSize) |
void |
setMaxIdleTimeout(long ms)
Set the maximum number of milliseconds of idleness before the connection is closed/disconnected, (ie no frames are either sent or received)
|
void |
setSession(WebSocketSession session)
Set the session associated with this connection
|
SuspendToken |
suspend()
Suspend a the incoming read events on the connection.
|
String |
toString() |
addListener, failedCallback, fillInterested, getBytesIn, getBytesOut, getCreatedTimeStamp, getEndPoint, getInputBufferSize, getMessagesIn, getMessagesOut, next
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
getLocalAddress, setNextIncomingFrames
public AbstractWebSocketConnection(EndPoint endp, Executor executor, Scheduler scheduler, WebSocketPolicy policy, ByteBufferPool bufferPool)
public Executor getExecutor()
LogicalConnection
getExecutor
in interface LogicalConnection
getExecutor
in class AbstractConnection
public void close()
Connection
Performs a logical close of this connection.
For simple connections, this may just mean to delegate the close to the associated
EndPoint
but, for example, SSL connections should write the SSL close message
before closing the associated EndPoint
.
close
in interface Closeable
close
in interface AutoCloseable
close
in interface Connection
close
in interface LogicalConnection
close
in class AbstractConnection
StatusCode
,
LogicalConnection.close(int, String)
public void close(int statusCode, String reason)
This can result in a close handshake over the network, or a simple local abnormal close
close
in interface LogicalConnection
statusCode
- the WebSocket status code.reason
- the (optional) reason string. (null is allowed)StatusCode
public void disconnect()
LogicalConnection
disconnect
in interface LogicalConnection
protected void execute(Runnable task)
public void fillInterested()
AbstractConnection
Utility method to be called to register read interest.
After a call to this method, AbstractConnection.onFillable()
or AbstractConnection.onFillInterestedFailed(Throwable)
will be called back as appropriate.
fillInterested
in class AbstractConnection
AbstractConnection.onFillable()
public ByteBufferPool getBufferPool()
LogicalConnection
getBufferPool
in interface LogicalConnection
public List<ExtensionConfig> getExtensions()
This list is negotiated during the WebSocket Upgrade Request/Response handshake.
public Generator getGenerator()
public long getIdleTimeout()
LogicalConnection
getIdleTimeout
in interface LogicalConnection
public IOState getIOState()
LogicalConnection
getIOState
in interface LogicalConnection
public long getMaxIdleTimeout()
LogicalConnection
getMaxIdleTimeout
in interface LogicalConnection
public Parser getParser()
public WebSocketPolicy getPolicy()
LogicalConnection
getPolicy
in interface LogicalConnection
public InetSocketAddress getRemoteAddress()
LogicalConnection
Note: Non-physical connections, like during the Mux extensions, or during unit testing can result in a InetSocketAddress on port 0 and/or on localhost.
getRemoteAddress
in interface LogicalConnection
public Scheduler getScheduler()
public WebSocketSession getSession()
LogicalConnection
getSession
in interface LogicalConnection
public AbstractWebSocketConnection.Stats getStats()
public boolean isOpen()
LogicalConnection
isOpen
in interface LogicalConnection
public boolean isReading()
LogicalConnection
isReading
in interface LogicalConnection
public void onClose()
Not related to WebSocket close handshake.
onClose
in interface Connection
onClose
in class AbstractConnection
public void onConnectionStateChange(ConnectionState state)
onConnectionStateChange
in interface IOState.ConnectionStateListener
public void onFillable()
AbstractConnection
Callback method invoked when the endpoint is ready to be read.
onFillable
in class AbstractConnection
AbstractConnection.fillInterested()
protected void onFillInterestedFailed(Throwable cause)
AbstractConnection
Callback method invoked when the endpoint failed to be ready to be read.
onFillInterestedFailed
in class AbstractConnection
cause
- the exception that caused the failurepublic void onOpen()
Connection
Callback method invoked when this Connection
is opened.
Creators of the connection implementation are responsible for calling this method.
onOpen
in interface Connection
onOpen
in class AbstractConnection
protected boolean onReadTimeout()
onReadTimeout
in class AbstractConnection
public void outgoingFrame(Frame frame, WriteCallback callback, BatchMode batchMode)
outgoingFrame
in interface OutgoingFrames
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.public void resume()
SuspendToken
resume
in interface SuspendToken
public void setExtensions(List<ExtensionConfig> extensions)
This list is negotiated during the WebSocket Upgrade Request/Response handshake.
extensions
- the list of negotiated extensions in use.public void setInputBufferSize(int inputBufferSize)
setInputBufferSize
in class AbstractConnection
public void setMaxIdleTimeout(long ms)
LogicalConnection
This idle timeout cannot be garunteed to take immediate effect for any active read/write actions. New read/write actions will have this new idle timeout.
setMaxIdleTimeout
in interface LogicalConnection
ms
- the number of milliseconds of idle timeoutpublic void setSession(WebSocketSession session)
LogicalConnection
setSession
in interface LogicalConnection
session
- the sessionpublic SuspendToken suspend()
LogicalConnection
suspend
in interface LogicalConnection
public void dump(Appendable out, String indent) throws IOException
dump
in interface Dumpable
IOException
public String toString()
toString
in class AbstractConnection
Copyright © 1995-2015 Webtide. All Rights Reserved.