Struct redis::PubSub [] [src]

pub struct PubSub {
    // some fields omitted
}

Represents a pubsub connection.

Methods

impl PubSub

The pubsub object provides convenient access to the redis pubsub system. Once created you can subscribe and unsubscribe from channels and listen in on messages.

Example:

let client = try!(redis::Client::open("redis://127.0.0.1/"));
let mut pubsub = try!(client.get_pubsub());
try!(pubsub.subscribe("channel_1"));
try!(pubsub.subscribe("channel_2"));

loop {
    let msg = try!(pubsub.get_message());
    let payload : String = try!(msg.get_payload());
    println!("channel '{}': {}", msg.get_channel_name(), payload);
}

fn subscribe<T: ToRedisArgs>(&mut self, channel: T) -> RedisResult<()>

Subscribes to a new channel.

fn psubscribe<T: ToRedisArgs>(&mut self, pchannel: T) -> RedisResult<()>

Subscribes to a new channel with a pattern.

fn unsubscribe<T: ToRedisArgs>(&mut self, channel: T) -> RedisResult<()>

Unsubscribes from a channel.

fn punsubscribe<T: ToRedisArgs>(&mut self, pchannel: T) -> RedisResult<()>

Unsubscribes from a channel with a pattern.

fn get_message(&self) -> RedisResult<Msg>

Fetches the next message from the pubsub connection. Blocks until a message becomes available. This currently does not provide a wait not to block :(

The message itself is still generic and can be converted into an appropriate type through the helper methods on it.