Struct lapin_futures_tls_internal::lapin::client::Client
source · pub struct Client<T> {
pub configuration: Configuration,
/* private fields */
}Expand description
the Client structures connects to a server and creates channels
Fields§
§configuration: ConfigurationImplementations§
source§impl<T> Client<T>where
T: 'static + AsyncRead + AsyncWrite + Send + Sync,
impl<T> Client<T>where
T: 'static + AsyncRead + AsyncWrite + Send + Sync,
sourcepub fn connect(
stream: T,
options: ConnectionOptions
) -> impl Future<Item = (Client<T>, Heartbeat<impl Future<Item = (), Error = Error> + Send + 'static>), Error = Error> + Send + 'static
pub fn connect(
stream: T,
options: ConnectionOptions
) -> impl Future<Item = (Client<T>, Heartbeat<impl Future<Item = (), Error = Error> + Send + 'static>), Error = Error> + Send + 'static
Takes a stream (TCP, TLS, unix socket, etc) and uses it to connect to an AMQP server.
This function returns a future that resolves once the connection handshake is done.
The result is a tuple containing a Client that can be used to create Channels and a
Heartbeat instance. The heartbeat is a task (it implements Future) that should be
spawned independently of the other futures.
To stop the heartbeat task, see HeartbeatHandle.
Example
use tokio::net::TcpStream;
use tokio::runtime::Runtime;
use lapin_futures::client::{Client, ConnectionOptions};
let addr = "127.0.0.1:5672".parse().unwrap();
let f = TcpStream::connect(&addr)
.and_then(|stream| {
Client::connect(stream, ConnectionOptions::default())
})
.and_then(|(client, mut heartbeat)| {
let handle = heartbeat.handle().unwrap();
tokio::spawn(
heartbeat.map_err(|e| eprintln!("The heartbeat task errored: {}", e))
);
/// ...
handle.stop();
Ok(())
});
Runtime::new().unwrap().block_on_all(
f.map_err(|e| eprintln!("An error occured: {}", e))
).expect("runtime exited with failure");sourcepub fn create_channel(
&self
) -> impl Future<Item = Channel<T>, Error = Error> + Send + 'static
pub fn create_channel(
&self
) -> impl Future<Item = Channel<T>, Error = Error> + Send + 'static
creates a new channel
returns a future that resolves to a Channel once the method succeeds
sourcepub fn create_confirm_channel(
&self,
options: ConfirmSelectOptions
) -> impl Future<Item = Channel<T>, Error = Error> + Send + 'static
pub fn create_confirm_channel(
&self,
options: ConfirmSelectOptions
) -> impl Future<Item = Channel<T>, Error = Error> + Send + 'static
returns a future that resolves to a Channel once the method succeeds
the channel will support RabbitMQ’s confirm extension