Class ConsumerHandler

java.lang.Object
org.eclipse.jetty.websocket.api.WebSocketAdapter
org.apache.pulsar.websocket.AbstractWebSocketHandler
org.apache.pulsar.websocket.ConsumerHandler
All Implemented Interfaces:
Closeable, AutoCloseable, org.eclipse.jetty.websocket.api.WebSocketConnectionListener, org.eclipse.jetty.websocket.api.WebSocketListener

public class ConsumerHandler extends AbstractWebSocketHandler
WebSocket end-point url handler to handle incoming receive and acknowledge requests.

receive: socket-proxy keeps pushing messages to client by writing into session. However, it dispatches N messages at any point and after that on acknowledgement from client it dispatches further messages.
acknowledge: it accepts acknowledgement for a given message from client and send it to broker. and for next action it notifies receive to dispatch further messages to client.

  • Constructor Details

    • ConsumerHandler

      public ConsumerHandler(WebSocketService service, javax.servlet.http.HttpServletRequest request, org.eclipse.jetty.websocket.servlet.ServletUpgradeResponse response)
  • Method Details

    • onWebSocketConnect

      public void onWebSocketConnect(org.eclipse.jetty.websocket.api.Session session)
      Specified by:
      onWebSocketConnect in interface org.eclipse.jetty.websocket.api.WebSocketConnectionListener
      Overrides:
      onWebSocketConnect in class AbstractWebSocketHandler
    • onWebSocketText

      public void onWebSocketText(String message)
      Specified by:
      onWebSocketText in interface org.eclipse.jetty.websocket.api.WebSocketListener
      Overrides:
      onWebSocketText in class org.eclipse.jetty.websocket.api.WebSocketAdapter
    • close

      public void close() throws IOException
      Throws:
      IOException
    • getConsumer

      public org.apache.pulsar.client.api.Consumer<byte[]> getConsumer()
    • getSubscription

      public String getSubscription()
    • getSubscriptionType

      public org.apache.pulsar.client.api.SubscriptionType getSubscriptionType()
    • getSubscriptionMode

      public org.apache.pulsar.client.api.SubscriptionMode getSubscriptionMode()
    • getAndResetNumMsgsDelivered

      public long getAndResetNumMsgsDelivered()
    • getAndResetNumBytesDelivered

      public long getAndResetNumBytesDelivered()
    • getAndResetNumMsgsAcked

      public long getAndResetNumMsgsAcked()
    • getMsgDeliveredCounter

      public long getMsgDeliveredCounter()
    • updateDeliverMsgStat

      protected void updateDeliverMsgStat(long msgSize)
    • getConsumerConfiguration

      protected org.apache.pulsar.client.api.ConsumerBuilder<byte[]> getConsumerConfiguration(org.apache.pulsar.client.api.PulsarClient client)
    • isAuthorized

      protected Boolean isAuthorized(String authRole, AuthenticationDataSource authenticationData) throws Exception
      Specified by:
      isAuthorized in class AbstractWebSocketHandler
      Throws:
      Exception
    • extractSubscription

      public static String extractSubscription(javax.servlet.http.HttpServletRequest request)