Interface RTopicReactive

All Known Subinterfaces:
RShardedTopicReactive

public interface RTopicReactive
Reactive interface for Publish Subscribe object. Messages are delivered to all message listeners across Redis cluster.
Author:
Nikita Koksharov
  • Method Details

    • getChannelNames

      List<String> getChannelNames()
      Get topic channel names
      Returns:
      channel names
    • publish

      reactor.core.publisher.Mono<Long> publish(Object message)
      Publish the message to all subscribers of this topic asynchronously
      Parameters:
      message - to send
      Returns:
      the Future object with number of clients that received the message
    • addListener

      reactor.core.publisher.Mono<Integer> addListener(StatusListener listener)
      Subscribes to status changes of this topic
      Parameters:
      listener - for messages
      Returns:
      listener id
      See Also:
    • addListener

      <M> reactor.core.publisher.Mono<Integer> addListener(Class<M> type, MessageListener<M> listener)
      Subscribes to this topic. MessageListener.onMessage is called when any message is published on this topic.
      Type Parameters:
      M - type of message
      Parameters:
      type - - type of message
      listener - for messages
      Returns:
      locally unique listener id
      See Also:
    • removeListener

      reactor.core.publisher.Mono<Void> removeListener(Integer... listenerIds)
      Removes the listener by id for listening this topic
      Parameters:
      listenerIds - - message listener ids
      Returns:
      void
    • removeListener

      reactor.core.publisher.Mono<Void> removeListener(MessageListener<?> listener)
      Removes the listener by instance for listening this topic
      Parameters:
      listener - - message listener
      Returns:
      void
    • getMessages

      <M> reactor.core.publisher.Flux<M> getMessages(Class<M> type)
      Returns continues stream of published messages.
      Type Parameters:
      M - type of message
      Parameters:
      type - - type of message to listen
      Returns:
      stream of messages
    • countSubscribers

      reactor.core.publisher.Mono<Long> countSubscribers()
      Returns amount of subscribers to this topic across all Redisson instances. Each subscriber may have multiple listeners.
      Returns:
      amount of subscribers
    • removeAllListeners

      reactor.core.publisher.Mono<Void> removeAllListeners()
      Removes all listeners from this topic
      Returns:
      void