Package jakarta.websocket
Interface RemoteEndpoint.Async
- All Superinterfaces:
RemoteEndpoint
- Enclosing interface:
RemoteEndpoint
This representation of the peer of a web socket conversation has the ability to send messages asynchronously. The
point of completion of the send is defined when all the supplied data has been written to the underlying
connection. The completion handlers for the asynchronous methods may be called with a different thread from that
which initiated the send.
-
Nested Class Summary
Nested classes/interfaces inherited from interface jakarta.websocket.RemoteEndpoint
RemoteEndpoint.Async, RemoteEndpoint.Basic
-
Method Summary
Modifier and TypeMethodDescriptionlong
Return the number of milliseconds the implementation will timeout attempting to send a websocket message.sendBinary
(ByteBuffer data) Initiates the asynchronous transmission of a binary message.void
sendBinary
(ByteBuffer data, SendHandler handler) Initiates the asynchronous transmission of a binary message.sendObject
(Object data) Initiates the asynchronous transmission of a custom developer object.void
sendObject
(Object data, SendHandler handler) Initiates the asynchronous transmission of a custom developer object.Initiates the asynchronous transmission of a text message.void
sendText
(String text, SendHandler handler) Initiates the asynchronous transmission of a text message.void
setSendTimeout
(long timeoutmillis) Sets the number of milliseconds the implementation will timeout attempting to send a websocket message.Methods inherited from interface jakarta.websocket.RemoteEndpoint
flushBatch, getBatchingAllowed, sendPing, sendPong, setBatchingAllowed
-
Method Details
-
getSendTimeout
long getSendTimeout()Return the number of milliseconds the implementation will timeout attempting to send a websocket message. A zero or negative value indicates the implementation will not timeout attempting to send a websocket message asynchronously. This value overrides the default value assigned in the WebSocketContainer.- Returns:
- the timeout time in milliseconds.
-
setSendTimeout
void setSendTimeout(long timeoutmillis) Sets the number of milliseconds the implementation will timeout attempting to send a websocket message. A zero or negative value indicates the implementation will not timeout attempting to send a websocket message asynchronously. This value overrides the default value assigned in the WebSocketContainer.- Parameters:
timeoutmillis
- The number of milliseconds this RemoteEndpoint will wait before timing out an incomplete asynchronous message send.
-
sendText
Initiates the asynchronous transmission of a text message. This method returns before the message is transmitted. Developers provide a callback to be notified when the message has been transmitted. Errors in transmission are given to the developer in the SendResult object.- Parameters:
text
- the text being sent.handler
- the handler which will be notified of progress.- Throws:
IllegalArgumentException
- if the text or the handler isnull
.
-
sendText
Initiates the asynchronous transmission of a text message. This method returns before the message is transmitted. Developers use the returned Future object to track progress of the transmission. The Future's get() method returnsnull
upon successful completion. Errors in transmission are wrapped in theExecutionException
thrown when querying the Future object.- Parameters:
text
- the text being sent.- Returns:
- the Future object representing the send operation.
- Throws:
IllegalArgumentException
- if the text isnull
.
-
sendBinary
Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers use the returned Future object to track progress of the transmission. The Future's get() method returnsnull
upon successful completion. Errors in transmission are wrapped in theExecutionException
thrown when querying the Future object.It is not safe for other threads to use the ByteBuffer until the sending of this message is complete. If the sending of the message completes successfully, the buffer's limit will be unchanged and the buffer's position will be equal to the limit. If the sending of the message does not complete successfully, the state of the buffer is undefined.
- Parameters:
data
- the data being sent.- Returns:
- the Future object representing the send operation.
- Throws:
IllegalArgumentException
- if the data isnull
.
-
sendBinary
Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers provide a callback to be notified when the message has been transmitted. Errors in transmission are given to the developer in the SendResult object.It is not safe for other threads to use the ByteBuffer until the sending of this message is complete. If the sending of the message completes successfully, the buffer's limit will be unchanged and the buffer's position will be equal to the limit. If the sending of the message does not complete successfully, the state of the buffer is undefined.
- Parameters:
data
- the data being sent, must not benull
.handler
- the handler that will be notified of progress, must not benull
.- Throws:
IllegalArgumentException
- if either the data or the handler arenull
.
-
sendObject
Initiates the asynchronous transmission of a custom developer object. The developer will have provided an encoder for this object type in the endpoint configuration. Containers will by default be able to encode java primitive types and their object equivalents, otherwise the developer must have provided an encoder for the object type in the endpoint configuration. A developer-provided encoder for a Java primitive type and its object equivalent overrides the container default encoder. Progress may be tracked using the Future object. The Future's get() methods returnnull
upon successful completion. Errors in transmission are wrapped in theExecutionException
thrown when querying the Future object.- Parameters:
data
- the object being sent.- Returns:
- the Future object representing the send operation.
- Throws:
IllegalArgumentException
- if the data isnull
.
-
sendObject
Initiates the asynchronous transmission of a custom developer object. Containers will by default be able to encode java primitive types and their object equivalents, otherwise the developer must have provided an encoder for the object type in the endpoint configuration. A developer-provided encoder for a Java primitive type and its object equivalent overrides the container default encoder. Developers are notified when transmission is complete through the supplied callback object.- Parameters:
data
- the object being sent.handler
- the handler that will be notified of progress, must not benull
.- Throws:
IllegalArgumentException
- if either the data or the handler arenull
.
-