javax.websocket
Interface RemoteEndpoint


public interface RemoteEndpoint

The RemoteEndpoint object is supplied by the container and represents the 'other end' of the Web Socket conversation. In particular, objects of this kind include numerous ways to send web socket messages. There is no guarantee of the success of receipt of a web socket message, but if the action of sending a message causes a known error, the API throws it. This object includes a variety of ways to send messages to the other end of a web socket session: by whole message, in pieces and asynchronously, where the point of completion is defined when all the supplied data had been written to the underlying connection. The completion handlers for the asynchronous methods are always called with a different thread from that which initiated the send.

Since:
DRAFT 001
Author:
dannycoward

Method Summary
 OutputStream getSendStream()
          Opens an output stream on which a binary message may be sent.
 Writer getSendWriter()
          Opens an character stream on which a text message may be sent.
 void sendBytes(ByteBuffer data)
          Send a binary message, returning when all of the message has been transmitted.
 void sendBytesByCompletion(ByteBuffer data, SendHandler completion)
          Initiates the asynchronous transmission of a binary message.
 Future<SendResult> sendBytesByFuture(ByteBuffer data)
          Initiates the asynchronous transmission of a binary message.
 void sendObject(Object o)
          Sends a custom developer object, blocking until it has been transmitted.
 void sendObjectByCompletion(Object o, SendHandler handler)
          Initiates the asynchronous transmission of a custom developer object.
 Future<SendResult> sendObjectByFuture(Object o)
          Initiates the asynchronous transmission of a custom developer object.
 void sendPartialBytes(ByteBuffer partialByte, boolean isLast)
          Send a binary message in pieces, blocking until all of the message has been transmitted.
 void sendPartialString(String fragment, boolean isLast)
          Send a text message in pieces, blocking until all of the message has been transmitted.
 void sendPing(ByteBuffer applicationData)
          Send a Ping message containing the given application data to the remote endpoint.
 void sendPong(ByteBuffer applicationData)
          Allows the developer to send an unsolicited Pong message containing the given application data in order to serve as a unidirectional heartbeat for the session.
 void sendString(String text)
          Send a text message, blocking until all of the message has been transmitted.
 void sendStringByCompletion(String text, SendHandler completion)
          Initiates the asynchronous transmission of a text message.
 Future<SendResult> sendStringByFuture(String text)
          Initiates the asynchronous transmission of a text message.
 

Method Detail

sendString

void sendString(String text)
                throws IOException
Send a text message, blocking until all of the message has been transmitted.

Parameters:
text - the message to be sent.
Throws:
IOException

sendBytes

void sendBytes(ByteBuffer data)
               throws IOException
Send a binary message, returning when all of the message has been transmitted.

Parameters:
data - the message to be sent.
Throws:
IOException

sendPartialString

void sendPartialString(String fragment,
                       boolean isLast)
                       throws IOException
Send a text message in pieces, blocking until all of the message has been transmitted. The runtime reads the message in order. Non-final pieces are sent with isLast set to false. The final piece must be sent with isLast set to true.

Parameters:
fragment - the piece of the message being sent.
isLast - Whether the fragment being sent is the last piece of the message.
Throws:
IOException

sendPartialBytes

void sendPartialBytes(ByteBuffer partialByte,
                      boolean isLast)
                      throws IOException
Send a binary message in pieces, blocking until all of the message has been transmitted. The runtime reads the message in order. Non-final pieces are sent with isLast set to false. The final piece must be sent with isLast set to true.

Parameters:
partialByte - the piece of the message being sent.
isLast - Whether the fragment being sent is the last piece of the message.
Throws:
IOException

getSendStream

OutputStream getSendStream()
                           throws IOException
Opens an output stream on which a binary message may be sent. The developer must close the output stream in order to indicate that the complete message has been placed into the output stream.

Returns:
the output stream to which the message will be written.
Throws:
IOException

getSendWriter

Writer getSendWriter()
                     throws IOException
Opens an character stream on which a text message may be sent. The developer must close the writer in order to indicate that the complete message has been placed into the character stream.

Returns:
the writer to which the message will be written.
Throws:
IOException

sendObject

void sendObject(Object o)
                throws IOException,
                       EncodeException
Sends a custom developer object, blocking until it has been transmitted. Containers will by default be able to encode java primitive types, their object equivalents, and arrays or collections thereof. The developer will have provided an encoder for this object type in the endpoint configuration.

Parameters:
o - the object to be sent.
Throws:
IOException
EncodeException

sendStringByCompletion

void sendStringByCompletion(String text,
                            SendHandler completion)
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.
completion - the handler which will be notified of progress.

sendStringByFuture

Future<SendResult> sendStringByFuture(String text)
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. Errors in transmission are given to the developer in the SendResult object.

Parameters:
text - the text being sent.
Returns:
the Future object representing the send operation.

sendBytesByFuture

Future<SendResult> sendBytesByFuture(ByteBuffer data)
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. Errors in transmission are given to the developer in the SendResult object.

Parameters:
data - the data being sent.
Returns:
the Future object representing the send operation.

sendBytesByCompletion

void sendBytesByCompletion(ByteBuffer data,
                           SendHandler completion)
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.

Parameters:
data - the data being sent.
completion - the handler that will be notified of progress.

sendObjectByFuture

Future<SendResult> sendObjectByFuture(Object o)
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, their object equivalents, and arrays or collections thereof. Progress is be tracked using the Future object.

Parameters:
o - the object being sent.
Returns:
the Future object representing the send operation.

sendObjectByCompletion

void sendObjectByCompletion(Object o,
                            SendHandler handler)
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, their object equivalents, and arrays or collections thereof. Developers are notified when transmission is complete through the supplied callback object.

Parameters:
o - the object being sent.
handler - the handler that will be notified of progress

sendPing

void sendPing(ByteBuffer applicationData)
Send a Ping message containing the given application data to the remote endpoint. The corresponding Pong message may be picked up using the MessageHandler.Pong handler.

Parameters:
applicationData - the data to be carried in the ping request.

sendPong

void sendPong(ByteBuffer applicationData)
Allows the developer to send an unsolicited Pong message containing the given application data in order to serve as a unidirectional heartbeat for the session.

Parameters:
applicationData - the application data to be carried in the pong response.



Copyright © 2012 Oracle and/or its affiliates. All rights reserved.