22 个版本 (破坏性)

0.19.1 2020 年 3 月 11 日
0.19.0 2019 年 5 月 27 日
0.18.0 2019 年 3 月 3 日
0.14.1 2018 年 12 月 5 日
0.3.0 2017 年 7 月 13 日

#58 in #rabbitmq

每月下载量 41 次
用于 批处理

BSD-2-Clause

34KB
254

已弃用,请直接使用 lapin


lib.rs:

lapin-futures-tls-api

该库提供了将 tls-apilapin-futures 库集成得很好的功能。它使用 amq-protocol URI 解析功能,并将 connectconnect_cancellable 方法添加到 AMQPUri 中,这将为您提供通过 lapin_futures::client::Client 和可选的 lapin_futures::client::HeartbeatHandle 包装在 Future 中的功能。

它会自动检测您是否使用 amqpamqps,并使用 tls-api 作为 SSL API 打开原始 TcpStreamTlsStream

连接和打开通道

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

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

    tokio::run(
        "amqps://user:pass@host/vhost?heartbeat=10".connect_cancellable::<tls_api_stub::TlsConnector, _>(|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);
        })
    );
}

依赖项

~19MB
~358K SLoC