javax.net.websocket
Interface RemoteEndpoint<T>

All Known Implementing Classes:
GrizzlyRemoteEndpoint, RemoteEndpointWrapper

public interface RemoteEndpoint<T>

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.
 Future<SendResult> sendBytes(ByteBuffer data, SendHandler completion)
          Initiates the asynchronous transmission of a binary message.
 void sendObject(T o)
          Sends a custom developer object, blocking until it has been transmitted.
 Future<SendResult> sendObject(T o, SendHandler handler)
          Initiates the 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.
 Future<SendResult> sendString(String text, SendHandler completion)
          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.
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.
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 output stream to which the message will be written.
Throws:
IOException

sendObject

void sendObject(T 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

sendString

Future<SendResult> sendString(String text,
                              SendHandler completion)
Initiates the asynchronous transmission of a text message. This method returns before the message is transmitted. Developers may provide a callback to be notified when the message has been transmitted, or may use the returned Future object to track progress of the transmission. Errors in transmission are given to the developer in the SendResult object in either case.

Parameters:
text - the text being sent.
completion - the handler which will be notified of progress.
Returns:

sendBytes

Future<SendResult> sendBytes(ByteBuffer data,
                             SendHandler completion)
Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers may provide a callback to be notified when the message has been transmitted, or may use the returned Future object to track progress of the transmission. Errors in transmission are given to the developer in the SendResult object in either case.

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

sendObject

Future<SendResult> sendObject(T o,
                              SendHandler handler)
Initiates the 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 can be tracked using the Future object, or the developer can wait for a provided callback object to be notified when transmission is complete.

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

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. All Rights Reserved.