Class WebSocketRemoteEndpoint

java.lang.Object
org.eclipse.jetty.websocket.common.WebSocketRemoteEndpoint
All Implemented Interfaces:
RemoteEndpoint

public class WebSocketRemoteEndpoint extends Object implements RemoteEndpoint
Endpoint for Writing messages to the Remote websocket.
  • Field Details

  • Constructor Details

  • Method Details

    • blockingWrite

      private void blockingWrite(WebSocketFrame frame) throws IOException
      Throws:
      IOException
    • lockMsg

      private boolean lockMsg(WebSocketRemoteEndpoint.MsgType type)
    • unlockMsg

      private void unlockMsg(WebSocketRemoteEndpoint.MsgType type)
    • getInetSocketAddress

      public InetSocketAddress getInetSocketAddress()
      Get the InetSocketAddress for the established connection.
      Specified by:
      getInetSocketAddress in interface RemoteEndpoint
      Returns:
      the InetSocketAddress for the established connection. (or null, if the connection is no longer established)
    • sendAsyncFrame

      private Future<Void> sendAsyncFrame(WebSocketFrame frame)
      Internal
      Parameters:
      frame - the frame to write
      Returns:
      the future for the network write of the frame
    • sendBytes

      public void sendBytes(ByteBuffer data) throws IOException
      Blocking write of bytes.
      Specified by:
      sendBytes in interface RemoteEndpoint
      Parameters:
      data - the message to be sent
      Throws:
      IOException - if unable to send the bytes
    • sendBytesByFuture

      public Future<Void> sendBytesByFuture(ByteBuffer data)
      Description copied from interface: RemoteEndpoint
      Initiates the asynchronous transmission of a binary message. This method returns before the message is transmitted. Developers may use the returned Future object to track progress of the transmission.
      Specified by:
      sendBytesByFuture in interface RemoteEndpoint
      Parameters:
      data - the data being sent
      Returns:
      the Future object representing the send operation.
    • sendBytes

      public void sendBytes(ByteBuffer data, WriteCallback callback)
      Description copied from interface: RemoteEndpoint
      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 resulted in an error.
      Specified by:
      sendBytes in interface RemoteEndpoint
      Parameters:
      data - the data being sent
      callback - callback to notify of success or failure of the write operation
    • uncheckedSendFrame

      public void uncheckedSendFrame(WebSocketFrame frame, WriteCallback callback)
    • sendPartialBytes

      public void sendPartialBytes(ByteBuffer fragment, boolean isLast) throws IOException
      Description copied from interface: RemoteEndpoint
      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.
      Specified by:
      sendPartialBytes in interface RemoteEndpoint
      Parameters:
      fragment - the piece of the message being sent
      isLast - true if this is the last piece of the partial bytes
      Throws:
      IOException - if unable to send the partial bytes
    • sendPartialString

      public void sendPartialString(String fragment, boolean isLast) throws IOException
      Description copied from interface: RemoteEndpoint
      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.
      Specified by:
      sendPartialString in interface RemoteEndpoint
      Parameters:
      fragment - the piece of the message being sent
      isLast - true if this is the last piece of the partial bytes
      Throws:
      IOException - if unable to send the partial bytes
    • 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.
      Specified by:
      sendPing in interface RemoteEndpoint
      Parameters:
      applicationData - the data to be carried in the ping request
      Throws:
      IOException - if unable to send the ping
    • 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.
      Specified by:
      sendPong in interface RemoteEndpoint
      Parameters:
      applicationData - the application data to be carried in the pong response.
      Throws:
      IOException - if unable to send the pong
    • sendString

      public void sendString(String text) throws IOException
      Description copied from interface: RemoteEndpoint
      Send a text message, blocking until all bytes of the message has been transmitted.

      Note: this is a blocking call

      Specified by:
      sendString in interface RemoteEndpoint
      Parameters:
      text - the message to be sent
      Throws:
      IOException - if unable to send the text message
    • sendStringByFuture

      public Future<Void> sendStringByFuture(String text)
      Description copied from interface: RemoteEndpoint
      Initiates the asynchronous transmission of a text message. This method may return before the message is transmitted. Developers may use the returned Future object to track progress of the transmission.
      Specified by:
      sendStringByFuture in interface RemoteEndpoint
      Parameters:
      text - the text being sent
      Returns:
      the Future object representing the send operation.
    • sendString

      public void sendString(String text, WriteCallback callback)
      Description copied from interface: RemoteEndpoint
      Initiates the asynchronous transmission of a text message. This method may return before the message is transmitted. Developers may provide a callback to be notified when the message has been transmitted or resulted in an error.
      Specified by:
      sendString in interface RemoteEndpoint
      Parameters:
      text - the text being sent
      callback - callback to notify of success or failure of the write operation
    • getBatchMode

      public BatchMode getBatchMode()
      Specified by:
      getBatchMode in interface RemoteEndpoint
      Returns:
      the batch mode with which messages are sent.
      See Also:
    • setBatchMode

      public void setBatchMode(BatchMode batchMode)
      Description copied from interface: RemoteEndpoint
      Set the batch mode with which messages are sent.
      Specified by:
      setBatchMode in interface RemoteEndpoint
      Parameters:
      batchMode - the batch mode to use
      See Also:
    • getMaxOutgoingFrames

      public int getMaxOutgoingFrames()
      Description copied from interface: RemoteEndpoint
      Get the maximum number of data frames allowed to be waiting to be sent at any one time. The default value is -1, this indicates there is no limit on how many frames can be queued to be sent by the implementation. If the limit is exceeded, subsequent frames sent are failed with a WritePendingException but the connection is not failed and will remain open.
      Specified by:
      getMaxOutgoingFrames in interface RemoteEndpoint
      Returns:
      the max number of frames.
    • setMaxOutgoingFrames

      public void setMaxOutgoingFrames(int maxOutgoingFrames)
      Description copied from interface: RemoteEndpoint
      Set the maximum number of data frames allowed to be waiting to be sent at any one time. The default value is -1, this indicates there is no limit on how many frames can be queued to be sent by the implementation. If the limit is exceeded, subsequent frames sent are failed with a WritePendingException but the connection is not failed and will remain open.
      Specified by:
      setMaxOutgoingFrames in interface RemoteEndpoint
      Parameters:
      maxOutgoingFrames - the max number of frames.
    • flush

      public void flush() throws IOException
      Description copied from interface: RemoteEndpoint
      Flushes messages that may have been batched by the implementation.
      Specified by:
      flush in interface RemoteEndpoint
      Throws:
      IOException - if the flush fails
      See Also:
    • toString

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

      private static WriteCallback from(WriteCallback callback, Runnable completed)