24 个版本 (破坏性更新)

0.21.1 2020 年 3 月 11 日
0.21.0 2019 年 3 月 3 日
0.20.0 2019 年 2 月 15 日
0.17.1 2018 年 12 月 5 日
0.7.0 2017 年 7 月 13 日

#61#rabbitmq

Download history 140/week @ 2024-03-31

每月 69 次下载
用于 批量

BSD-2-Clause

36KB
259

已弃用,直接使用 lapin


lib.rs:

lapin-futures-rustls

此库提供了 rustls 与 lapin-futures 库的良好集成。它使用 amq-protocol URI 解析功能,并将 connectconnect_cancellable 方法添加到 AMQPUri,这将为您提供 lapin_futures::client::Client 和可选的 lapin_futures::client::HeartbeatHandle,它们被包装在一个 Future 中。

它会自动检测您是否使用 amqpamqps,并使用 rustls 作为 SSL 引擎打开一个原始的 TcpStream 或一个 TlsStream

连接和打开通道

use env_logger;
use failure::Error;
use futures::future::Future;
use lapin_futures_rustls::{AMQPConnectionRustlsExt, lapin};
use lapin::channel::ConfirmSelectOptions;
use tokio;

fn main() {
    env_logger::init();

    tokio::run(
        "amqps://user:pass@host/vhost?heartbeat=10".connect_cancellable(|err| {
            eprintln!("heartbeat error: {:?}", err);
        }).map_err(Error::from).and_then(|(client, heartbeat_handle)| {
            println!("Connected!");
            client.create_confirm_channel(ConfirmSelectOptions::default()).map(|channel| (channel, heartbeat_handle)).and_then(|(channel, heartbeat_handle)| {
                println!("Stopping heartbeat.");
                heartbeat_handle.stop();
                println!("Closing channel.");
                channel.close(200, "Bye")
            }).map_err(Error::from)
        }).map_err(|err| {
            eprintln!("amqp error: {:?}", err);
        })
    );
}

依赖项

~28MB
~604K SLoC