Class ByteBufferMessageSink

java.lang.Object
org.eclipse.jetty.websocket.core.messages.AbstractMessageSink
org.eclipse.jetty.websocket.core.messages.ByteBufferMessageSink
All Implemented Interfaces:
MessageSink

public class ByteBufferMessageSink extends AbstractMessageSink

A MessageSink implementation that accumulates BINARY frames into a message that is then delivered to the application function passed to the constructor in the form of a ByteBuffer.

  • Constructor Details

    • ByteBufferMessageSink

      public ByteBufferMessageSink(CoreSession session, MethodHolder methodHolder, boolean autoDemand)
      Creates a new ByteBufferMessageSink.
      Parameters:
      session - the WebSocket session
      methodHolder - the application function to invoke when a new message has been assembled
      autoDemand - whether this MessageSink manages demand automatically
  • Method Details

    • accept

      public void accept(Frame frame, Callback callback)
      Description copied from interface: MessageSink

      Consumes the WebSocket frame, possibly asynchronously when this method has returned.

      The callback argument must be completed when the frame payload is consumed.

      The demand for more frames must be explicitly invoked, or arranged to be invoked asynchronously, by the implementation of this method, by calling CoreSession.demand().

      Parameters:
      frame - the frame to consume
      callback - the callback to complete when the frame is consumed
    • fail

      public void fail(Throwable failure)
      Description copied from interface: MessageSink

      Fails this MessageSink with the given cause.

      Parameters:
      failure - the cause of the failure
    • invoke

      protected void invoke(MethodHolder methodHolder, ByteBuffer byteBuffer, Callback callback) throws Throwable
      Throws:
      Throwable