Class TyrusRemoteEndpoint

java.lang.Object
org.glassfish.tyrus.core.TyrusRemoteEndpoint
All Implemented Interfaces:
RemoteEndpoint

public abstract class TyrusRemoteEndpoint extends Object implements RemoteEndpoint
Wraps the RemoteEndpoint and represents the other side of the websocket connection.
Author:
Danny Coward, Martin Matula, Stepan Kopriva, Pavel Bucek
  • Method Summary

    Modifier and Type
    Method
    Description
    void
     
    void
    This method is only used when batching is allowed for this RemoteEndpint.
    boolean
    Return whether the implementation is allowed to batch outgoing messages before sending.
    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
    setBatchingAllowed(boolean allowed)
    Indicate to the implementation that it is allowed to batch outgoing messages before sending.
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Method Details

    • sendPing

      public void sendPing(ByteBuffer applicationData) throws IOException
      Description copied from interface: RemoteEndpoint
      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.

      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.

      Specified by:
      sendPing in interface RemoteEndpoint
      Parameters:
      applicationData - the data to be carried in the ping request.
      Throws:
      IOException - if the ping failed to be sent
    • sendPong

      public void sendPong(ByteBuffer applicationData) throws IOException
      Description copied from interface: RemoteEndpoint
      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.

      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.

      Specified by:
      sendPong in interface RemoteEndpoint
      Parameters:
      applicationData - the application data to be carried in the pong response.
      Throws:
      IOException - if the pong failed to be sent
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • setBatchingAllowed

      public void setBatchingAllowed(boolean allowed)
      Description copied from interface: RemoteEndpoint
      Indicate to the implementation that it is allowed to batch outgoing messages before sending. Not all implementations support batching of outgoing messages. The default mode for RemoteEndpoints is false. If the developer has indicated that batching of outgoing messages is permitted, then the developer must call flushBatch() in order to be sure that all the messages passed into the send methods of this RemoteEndpoint are sent. When batching is allowed, the implementations send operations are considered to have completed if the message has been written to the local batch, in the case when there is still room in the batch for the message, and are considered to have completed if the batch has been send to the peer and the remainder written to the new batch, in the case when writing the message causes the batch to need to be sent. The blocking and asynchronous send methods use this notion of completion in order to complete blocking calls, notify SendHandlers and complete Futures respectively. When batching is allowed, if the developer has called send methods on this RemoteEndpoint without calling flushBatch(), then the implementation may not have sent all the messages the developer has asked to be sent. If the parameter value is false and the implementation has a batch of unsent messages, then the implementation must immediately send the batch of unsent messages.
      Specified by:
      setBatchingAllowed in interface RemoteEndpoint
      Parameters:
      allowed - whether the implementation is allowed to batch messages.
    • getBatchingAllowed

      public boolean getBatchingAllowed()
      Description copied from interface: RemoteEndpoint
      Return whether the implementation is allowed to batch outgoing messages before sending. The default mode for RemoteEndpoints is false. The value may be changed by calling setBatchingAllowed.
      Specified by:
      getBatchingAllowed in interface RemoteEndpoint
      Returns:
      true if the implementation is allowed to batch outgoing messages before sending, otherwise false
    • flushBatch

      public void flushBatch()
      Description copied from interface: RemoteEndpoint
      This method is only used when batching is allowed for this RemoteEndpint. Calling this method forces the implementation to send any unsent messages it has been batching.
      Specified by:
      flushBatch in interface RemoteEndpoint
    • close

      public void close(CloseReason cr)