module Redis::Commands::Pubsub

Public Instance Methods

psubscribe(*channels, &block) click to toggle source

Listen for messages published to channels matching the given patterns.

# File lib/redis/commands/pubsub.rb, line 42
def psubscribe(*channels, &block)
  synchronize do |_client|
    _subscription(:psubscribe, 0, channels, block)
  end
end
psubscribe_with_timeout(timeout, *channels, &block) click to toggle source

Listen for messages published to channels matching the given patterns. Throw a timeout error if there is no messages for a timeout period.

# File lib/redis/commands/pubsub.rb, line 50
def psubscribe_with_timeout(timeout, *channels, &block)
  synchronize do |_client|
    _subscription(:psubscribe_with_timeout, timeout, channels, block)
  end
end
publish(channel, message) click to toggle source

Post a message to a channel.

# File lib/redis/commands/pubsub.rb, line 7
def publish(channel, message)
  send_command([:publish, channel, message])
end
pubsub(subcommand, *args) click to toggle source

Inspect the state of the Pub/Sub subsystem. Possible subcommands: channels, numsub, numpat.

# File lib/redis/commands/pubsub.rb, line 67
def pubsub(subcommand, *args)
  send_command([:pubsub, subcommand] + args)
end
punsubscribe(*channels) click to toggle source

Stop listening for messages posted to channels matching the given patterns.

# File lib/redis/commands/pubsub.rb, line 57
def punsubscribe(*channels)
  synchronize do |client|
    raise "Can't unsubscribe if not subscribed." unless subscribed?

    client.punsubscribe(*channels)
  end
end
subscribe(*channels, &block) click to toggle source

Listen for messages published to the given channels.

# File lib/redis/commands/pubsub.rb, line 18
def subscribe(*channels, &block)
  synchronize do |_client|
    _subscription(:subscribe, 0, channels, block)
  end
end
subscribe_with_timeout(timeout, *channels, &block) click to toggle source

Listen for messages published to the given channels. Throw a timeout error if there is no messages for a timeout period.

# File lib/redis/commands/pubsub.rb, line 26
def subscribe_with_timeout(timeout, *channels, &block)
  synchronize do |_client|
    _subscription(:subscribe_with_timeout, timeout, channels, block)
  end
end
subscribed?() click to toggle source
# File lib/redis/commands/pubsub.rb, line 11
def subscribed?
  synchronize do |client|
    client.is_a? SubscribedClient
  end
end
unsubscribe(*channels) click to toggle source

Stop listening for messages posted to the given channels.

# File lib/redis/commands/pubsub.rb, line 33
def unsubscribe(*channels)
  synchronize do |client|
    raise "Can't unsubscribe if not subscribed." unless subscribed?

    client.unsubscribe(*channels)
  end
end