pub trait Listener: Send {
type Acceptor: Acceptor;
fn into_acceptor<'async_trait>(
self
) -> Pin<Box<dyn Future<Output = IoResult<Self::Acceptor>> + Send + 'async_trait>>
where
Self: 'async_trait;
fn combine<T>(self, other: T) -> Combined<Self, T>
where
Self: Sized,
{ ... }
fn rustls<S: IntoTlsConfigStream<RustlsConfig>>(
self,
config_stream: S
) -> RustlsListener<Self, S>
where
Self: Sized,
{ ... }
fn native_tls<S: IntoTlsConfigStream<NativeTlsConfig>>(
self,
config_stream: S
) -> NativeTlsListener<Self, S>
where
Self: Sized,
{ ... }
fn acme(self, auto_cert: AutoCert) -> AutoCertListener<Self>
where
Self: Sized,
{ ... }
fn boxed(self) -> BoxListener
where
Self: Sized + 'static,
{ ... }
}
Expand description
Represents a listener that can be listens for incoming connections.
Associated Types
Required methods
Provided methods
Combine two listeners.
You can call this function multiple times to combine more listeners.
Example
use poem::listener::{Listener, TcpListener};
let listener = TcpListener::bind("127.0.0.1:80").combine(TcpListener::bind("127.0.0.1:81"));
fn rustls<S: IntoTlsConfigStream<RustlsConfig>>(
self,
config_stream: S
) -> RustlsListener<Self, S> where
Self: Sized,
fn rustls<S: IntoTlsConfigStream<RustlsConfig>>(
self,
config_stream: S
) -> RustlsListener<Self, S> where
Self: Sized,
This is supported on crate feature
rustls
only.Consume this listener and return a new TLS listener with rustls
.
fn native_tls<S: IntoTlsConfigStream<NativeTlsConfig>>(
self,
config_stream: S
) -> NativeTlsListener<Self, S> where
Self: Sized,
fn native_tls<S: IntoTlsConfigStream<NativeTlsConfig>>(
self,
config_stream: S
) -> NativeTlsListener<Self, S> where
Self: Sized,
This is supported on crate feature
native-tls
only.Consume this listener and return a new TLS listener with native-tls
.
fn acme(self, auto_cert: AutoCert) -> AutoCertListener<Self> where
Self: Sized,
fn acme(self, auto_cert: AutoCert) -> AutoCertListener<Self> where
Self: Sized,
This is supported on crate feature
acme
only.Consume this listener and return a new ACME listener.
Example
use poem::listener::{
acme::{AutoCert, LETS_ENCRYPT_PRODUCTION},
Listener, TcpListener,
};
let listener = TcpListener::bind("0.0.0.0:443").acme(
AutoCert::builder()
.directory_url(LETS_ENCRYPT_PRODUCTION)
.domain("poem.rs")
.build()
.unwrap(),
);
fn boxed(self) -> BoxListener where
Self: Sized + 'static,
fn boxed(self) -> BoxListener where
Self: Sized + 'static,
Wrap the listener in a Box
.
Implementations on Foreign Types
sourceimpl Listener for Infallible
impl Listener for Infallible
type Acceptor = Infallible
fn into_acceptor<'async_trait>(
self
) -> Pin<Box<dyn Future<Output = IoResult<Self::Acceptor>> + Send + 'async_trait>> where
Self: 'async_trait,
Implementors
sourceimpl Listener for BoxListener
impl Listener for BoxListener
type Acceptor = BoxAcceptor
sourceimpl<T: AsRef<Path> + Send> Listener for UnixListener<T>
impl<T: AsRef<Path> + Send> Listener for UnixListener<T>
type Acceptor = UnixAcceptor
sourceimpl<T: ToSocketAddrs + Send> Listener for TcpListener<T>
impl<T: ToSocketAddrs + Send> Listener for TcpListener<T>
type Acceptor = TcpAcceptor
sourceimpl<T: Listener> Listener for AutoCertListener<T>
This is supported on crate feature acme
only.
impl<T: Listener> Listener for AutoCertListener<T>
This is supported on crate feature
acme
only.