15个版本 (9个破坏性更新)

0.10.1 2020年3月11日
0.10.0 2019年3月3日
0.9.0 2019年2月15日
0.6.1 2018年12月5日
0.4.0 2018年7月9日

#55 in #rabbitmq

每月下载 32

BSD-2-Clause

35KB
254 代码行

已弃用,请直接使用lapin


lib.rs:

lapin-futures-openssl

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

它自动检测您是否使用amqpamqps,并使用openssl作为SSL引擎打开原始TcpStreamSslStream

连接和打开通道

use env_logger;
use failure::Error;
use futures::future::Future;
use lapin_futures_openssl::{AMQPConnectionOpensslExt, 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);
        })
    );
}

依赖项

~21MB
~397K SLoC