WebSocketpublic class WebSocketImpl extends java.lang.Object implements WebSocket
WebSocket.READYSTATE, WebSocket.Role| Modifier and Type | Field | Description |
|---|---|---|
java.nio.channels.ByteChannel |
channel |
the possibly wrapped channel object whose selection is controlled by
key |
static boolean |
DEBUG |
Activate debug mode for additional infos
|
java.util.concurrent.BlockingQueue<java.nio.ByteBuffer> |
inQueue |
Queue of buffers that need to be processed
|
java.nio.channels.SelectionKey |
key |
|
java.util.concurrent.BlockingQueue<java.nio.ByteBuffer> |
outQueue |
Queue of buffers that need to be sent to the client.
|
static int |
RCVBUF |
|
WebSocketServer.WebSocketWorker |
workerThread |
Helper variable meant to store the thread which ( exclusively ) triggers this objects decode method.
|
DEFAULT_PORT, DEFAULT_WSS_PORT| Constructor | Description |
|---|---|
WebSocketImpl(WebSocketListener listener,
java.util.List<Draft> drafts) |
Creates a websocket with server role
|
WebSocketImpl(WebSocketListener listener,
java.util.List<Draft> drafts,
java.net.Socket socket) |
Deprecated.
|
WebSocketImpl(WebSocketListener listener,
Draft draft) |
creates a websocket with client role
|
WebSocketImpl(WebSocketListener listener,
Draft draft,
java.net.Socket socket) |
Deprecated.
|
| Modifier and Type | Method | Description |
|---|---|---|
void |
close() |
Convenience function which behaves like close(CloseFrame.NORMAL)
|
void |
close(int code) |
sends the closing handshake.
|
void |
close(int code,
java.lang.String message) |
sends the closing handshake.
|
void |
close(int code,
java.lang.String message,
boolean remote) |
|
void |
close(InvalidDataException e) |
|
void |
closeConnection() |
|
protected void |
closeConnection(int code,
boolean remote) |
|
void |
closeConnection(int code,
java.lang.String message) |
This will close the connection immediately without a proper close handshake.
|
void |
closeConnection(int code,
java.lang.String message,
boolean remote) |
This will close the connection immediately without a proper close handshake.
|
void |
decode(java.nio.ByteBuffer socketBuffer) |
Method to decode the provided ByteBuffer
|
void |
eot() |
|
void |
flushAndClose(int code,
java.lang.String message,
boolean remote) |
|
<T> T |
getAttachment() |
Getter for the connection attachment.
|
Draft |
getDraft() |
Getter for the draft
|
java.net.InetSocketAddress |
getLocalSocketAddress() |
Returns the address of the endpoint this socket is bound to.
|
WebSocket.READYSTATE |
getReadyState() |
Retrieve the WebSocket 'readyState'.
|
java.net.InetSocketAddress |
getRemoteSocketAddress() |
Returns the address of the endpoint this socket is connected to, or
null if it is unconnected. |
java.lang.String |
getResourceDescriptor() |
Returns the HTTP Request-URI as defined by http://tools.ietf.org/html/rfc2616#section-5.1.2
If the opening handshake has not yet happened it will return null. |
WebSocketListener |
getWebSocketListener() |
Getter for the websocket listener
|
boolean |
hasBufferedData() |
Checks if the websocket has buffered data
|
int |
hashCode() |
|
boolean |
isClosed() |
Is the websocket in the state CLOSED
|
boolean |
isClosing() |
Is the websocket in the state CLOSING
|
boolean |
isConnecting() |
Deprecated.
|
boolean |
isFlushAndClose() |
Returns true when no further frames may be submitted
This happens before the socket connection is closed. |
boolean |
isOpen() |
Is the websocket in the state OPEN
|
void |
send(byte[] bytes) |
Send Binary data (plain bytes) to the other end.
|
void |
send(java.lang.String text) |
Send Text data to the other end.
|
void |
send(java.nio.ByteBuffer bytes) |
Send Binary data (plain bytes) to the other end.
|
void |
sendFragmentedFrame(Framedata.Opcode op,
java.nio.ByteBuffer buffer,
boolean fin) |
Allows to send continuous/fragmented frames conveniently.
|
void |
sendFrame(java.util.Collection<Framedata> frames) |
Send a collection of frames to the other end
|
void |
sendFrame(Framedata framedata) |
Send a frame to the other end
|
void |
sendPing() |
Send a ping to the other end
|
<T> void |
setAttachment(T attachment) |
Setter for an attachment on the socket connection.
|
void |
startHandshake(ClientHandshakeBuilder handshakedata) |
|
java.lang.String |
toString() |
|
void |
updateLastPong() |
Update the timestamp when the last pong was received
|
public static int RCVBUF
public static boolean DEBUG
public final java.util.concurrent.BlockingQueue<java.nio.ByteBuffer> outQueue
public final java.util.concurrent.BlockingQueue<java.nio.ByteBuffer> inQueue
public java.nio.channels.SelectionKey key
public java.nio.channels.ByteChannel channel
keypublic volatile WebSocketServer.WebSocketWorker workerThread
public WebSocketImpl(WebSocketListener listener, java.util.List<Draft> drafts)
listener - The listener for this instancedrafts - The drafts which should be usedpublic WebSocketImpl(WebSocketListener listener, Draft draft)
listener - The listener for this instancedraft - The draft which should be used@Deprecated public WebSocketImpl(WebSocketListener listener, Draft draft, java.net.Socket socket)
@Deprecated public WebSocketImpl(WebSocketListener listener, java.util.List<Draft> drafts, java.net.Socket socket)
public void decode(java.nio.ByteBuffer socketBuffer)
socketBuffer - the ByteBuffer to decodepublic void close(int code,
java.lang.String message,
boolean remote)
public void close(int code,
java.lang.String message)
WebSocketpublic void closeConnection(int code,
java.lang.String message,
boolean remote)
code - the closing codemessage - the closing messageremote - Indicates who "generated" code.true means that this endpoint received the code from the other endpoint.remote may also be true if this endpoint started the closing handshake since the other endpoint may not simply echo the code but close the connection the same time this endpoint does do but with an other code. protected void closeConnection(int code,
boolean remote)
public void closeConnection()
public void closeConnection(int code,
java.lang.String message)
WebSocketcloseConnection in interface WebSocketcode - the closing codemessage - the closing messagepublic void flushAndClose(int code,
java.lang.String message,
boolean remote)
public void eot()
public void close(int code)
WebSocketpublic void close(InvalidDataException e)
public void send(java.lang.String text)
throws WebsocketNotConnectedException
send in interface WebSockettext - the text data to sendjava.nio.channels.NotYetConnectedException - websocket is not yet connectedWebsocketNotConnectedExceptionpublic void send(java.nio.ByteBuffer bytes)
throws java.lang.IllegalArgumentException,
WebsocketNotConnectedException
send in interface WebSocketbytes - the binary data to sendjava.lang.IllegalArgumentException - the data is nulljava.nio.channels.NotYetConnectedException - websocket is not yet connectedWebsocketNotConnectedExceptionpublic void send(byte[] bytes)
throws java.lang.IllegalArgumentException,
WebsocketNotConnectedException
WebSocketsend in interface WebSocketbytes - the byte array to sendjava.lang.IllegalArgumentException - the data is nullWebsocketNotConnectedExceptionpublic void sendFragmentedFrame(Framedata.Opcode op, java.nio.ByteBuffer buffer, boolean fin)
WebSocketsendFragmentedFrame in interface WebSocketop - This is only important for the first frame in the sequence. Opcode.TEXT, Opcode.BINARY are allowed.buffer - The buffer which contains the payload. It may have no bytes remaining.fin - true means the current frame is the last in the sequence.public void sendFrame(java.util.Collection<Framedata> frames)
WebSocketpublic void sendFrame(Framedata framedata)
WebSocketpublic void sendPing()
throws java.nio.channels.NotYetConnectedException
WebSocketpublic boolean hasBufferedData()
WebSockethasBufferedData in interface WebSocketpublic void startHandshake(ClientHandshakeBuilder handshakedata) throws InvalidHandshakeException
InvalidHandshakeException@Deprecated public boolean isConnecting()
WebSocketisConnecting in interface WebSocketpublic boolean isOpen()
WebSocketpublic boolean isClosing()
WebSocketpublic boolean isFlushAndClose()
WebSocketisFlushAndClose in interface WebSocketpublic boolean isClosed()
WebSocketpublic WebSocket.READYSTATE getReadyState()
WebSocketgetReadyState in interface WebSocketpublic int hashCode()
hashCode in class java.lang.Objectpublic java.lang.String toString()
toString in class java.lang.Objectpublic java.net.InetSocketAddress getRemoteSocketAddress()
WebSocketnull if it is unconnected.getRemoteSocketAddress in interface WebSocketpublic java.net.InetSocketAddress getLocalSocketAddress()
WebSocketgetLocalSocketAddress in interface WebSocketpublic void close()
WebSocketpublic java.lang.String getResourceDescriptor()
WebSocketgetResourceDescriptor in interface WebSocketpublic void updateLastPong()
public WebSocketListener getWebSocketListener()
public <T> T getAttachment()
WebSocketgetAttachment in interface WebSocketT - The type of the attachmentpublic <T> void setAttachment(T attachment)
WebSocketsetAttachment in interface WebSocketT - The type of the attachmentattachment - The object to be attached to the user