[−][src]Crate lapin_futures_tls_internal
lapin-futures-openssl
This library offers a nice integration of openssl
with the lapin-futures
library.
It uses amq-protocol
URI parsing feature and adds the connect
and connect_cancellable
methods to AMQPUri
which will provide you with a lapin_futures::client::Client
and
optionally a lapin_futures::client::HeartbeatHandle
wrapped in a Future
.
It autodetects whether you're using amqp
or amqps
and opens either a raw TcpStream
or a TlsStream
.
Connecting and opening a channel
use env_logger; use failure::Error; use futures::{self, future::Future}; use lapin_futures_tls_internal::{AMQPConnectionTlsExt, lapin}; use lapin::channel::ConfirmSelectOptions; use native_tls; use tokio; use tokio_tls::TlsConnector; use std::io; fn main() { env_logger::init(); tokio::run( "amqps://user:pass@host/vhost?heartbeat=10".connect_cancellable(|err| { eprintln!("heartbeat error: {:?}", err); }, |host, stream| { Box::new(futures::future::result(native_tls::TlsConnector::builder().build().map_err(|_| io::Error::new(io::ErrorKind::Other, "Failed to create connector"))).and_then(move |connector| { TlsConnector::from(connector).connect(&host, stream).map_err(|_| io::Error::new(io::ErrorKind::Other, "Failed to connect")).map(Box::new) })) }).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); }) ); }
Modules
error | Deprecated The type errors that can be returned in this crate. |
lapin | Deprecated Reexport of the |
uri | Deprecated Reexport of the |
Structs
TcpStream | Reexport of |
Enums
AMQPStream | Deprecated Represents either a raw |
Traits
AMQPConnectionTlsExt | Deprecated Add a connect method providing a |