Class RedisPubSubTransport

java.lang.Object
com.iantapply.relay.redis.RedisPubSubTransport
All Implemented Interfaces:
com.iantapply.relay.core.MessageTransport, AutoCloseable

public final class RedisPubSubTransport extends Object implements com.iantapply.relay.core.MessageTransport
Minimal RESP2 client dedicated to Relay's PUBLISH/SUBSCRIBE use case.
  • Constructor Details

    • RedisPubSubTransport

      public RedisPubSubTransport(URI uri, Logger logger)
      Creates a Redis transport for one endpoint.
      Parameters:
      uri - Redis endpoint, credentials, database, and optional TLS scheme
      logger - destination for connection warnings
      Throws:
      IllegalArgumentException - if the URI is not a valid Redis endpoint
  • Method Details

    • publish

      public CompletionStage<Void> publish(String channel, byte[] payload)
      Specified by:
      publish in interface com.iantapply.relay.core.MessageTransport
    • start

      public void start(Collection<String> channels, BiConsumer<String,byte[]> receiver)
      Specified by:
      start in interface com.iantapply.relay.core.MessageTransport
    • connected

      public boolean connected()
      Specified by:
      connected in interface com.iantapply.relay.core.MessageTransport
    • publisherConnected

      public boolean publisherConnected()
      Specified by:
      publisherConnected in interface com.iantapply.relay.core.MessageTransport
    • subscriberConnected

      public boolean subscriberConnected()
      Specified by:
      subscriberConnected in interface com.iantapply.relay.core.MessageTransport
    • reconnects

      public long reconnects()
      Specified by:
      reconnects in interface com.iantapply.relay.core.MessageTransport
    • close

      public void close()
      Specified by:
      close in interface AutoCloseable
      Specified by:
      close in interface com.iantapply.relay.core.MessageTransport