Class SseEventBus

java.lang.Object
ch.rasc.sse.eventbus.SseEventBus

public class SseEventBus extends Object
  • Constructor Details

  • Method Details

    • cleanUp

      @PreDestroy public void cleanUp()
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId)
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId, String... events)
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId, boolean unsubscribe, String... events)
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId, Long timeout, String... events)
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId, Long timeout, boolean unsubscribe, String... events)
    • createSseEmitter

      public org.springframework.web.servlet.mvc.method.annotation.SseEmitter createSseEmitter(String clientId, Long timeout, boolean unsubscribe, boolean completeAfterMessage, String... events)
      Creates a SseEmitter and registers the client in the internal database. Client will be subscribed to the provided events if specified.
      Parameters:
      clientId - unique client identifier
      timeout - timeout value in milliseconds
      unsubscribe - if true unsubscribes from all events that are not provided with the next parameter
      events - events the client wants to subscribe
      Returns:
      a new SseEmitter instance
    • registerClient

      public void registerClient(String clientId, org.springframework.web.servlet.mvc.method.annotation.SseEmitter emitter)
    • registerClient

      public void registerClient(String clientId, org.springframework.web.servlet.mvc.method.annotation.SseEmitter emitter, boolean completeAfterMessage)
    • unregisterClient

      public void unregisterClient(String clientId)
    • subscribe

      public void subscribe(String clientId)
      Subscribe to the default event (message)
    • subscribe

      public void subscribe(String clientId, String event)
    • subscribeOnly

      public void subscribeOnly(String clientId, String event)
      Subscribe to the event and unsubscribe to all other currently subscribed events
    • unsubscribe

      public void unsubscribe(String clientId, String event)
    • unsubscribeFromAllEvents

      public void unsubscribeFromAllEvents(String clientId, String... keepEvents)
      Unsubscribe the client from all events except the events provided with the keepEvents parameter. When keepEvents is null the client unsubscribes from all events
    • handleEvent

      @EventListener public void handleEvent(SseEvent event)
    • getDataObjectConverters

      public List<DataObjectConverter> getDataObjectConverters()
    • setDataObjectConverters

      public void setDataObjectConverters(List<DataObjectConverter> dataObjectConverters)
    • getAllClientIds

      public Set<String> getAllClientIds()
      Get a collection of all registered clientIds
      Returns:
      an unmodifiable set of all registered clientIds
    • getAllEvents

      public Set<String> getAllEvents()
      Get a collection of all registered events
      Returns:
      an unmodifiable set of all events
    • getAllSubscriptions

      public Map<String,Set<String>> getAllSubscriptions()
      Get a map that maps events to a collection of clientIds
      Returns:
      map with the event as key, the value is a set of clientIds
    • getSubscribers

      public Set<String> getSubscribers(String event)
      Get all subscribers to a particular event
      Returns:
      an unmodifiable set of all subscribed clientIds to this event. Empty when nobody is subscribed
    • countSubscribers

      public int countSubscribers(String event)
      Get the number of subscribers to a particular event
      Returns:
      the number of clientIds subscribed to this event. 0 when nobody is subscribed
    • hasSubscribers

      public boolean hasSubscribers(String event)
      Check if a particular event has subscribers
      Returns:
      true when the event has 1 or more subscribers.