* add pub sub client implementation with examples * replace subscribed_channels list Vec with HashSet to avoid duplicates * update Subscriber to use async-stream instead of manual Stream impl * revert update to error handling server.rs, as #21 handles it * remove uneeded recursion limit extension
32 lines
709 B
Rust
32 lines
709 B
Rust
//! Publish to a redis channel example.
|
|
//!
|
|
//! A simple client that connects to a mini-redis server, and
|
|
//! publishes a message on `foo` channel
|
|
//!
|
|
//! You can test this out by running:
|
|
//!
|
|
//! cargo run --bin server
|
|
//!
|
|
//! Then in another terminal run:
|
|
//!
|
|
//! cargo run --example sub
|
|
//!
|
|
//! And then in another terminal run:
|
|
//!
|
|
//! cargo run --example pub
|
|
|
|
#![warn(rust_2018_idioms)]
|
|
|
|
use mini_redis::{client, Result};
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
// Open a connection to the mini-redis address.
|
|
let mut client = client::connect("127.0.0.1:6379").await?;
|
|
|
|
// publish message `bar` on channel foo
|
|
client.publish("foo", "bar".into()).await?;
|
|
|
|
Ok(())
|
|
}
|