Skip to main content

ServerConnector

Trait ServerConnector 

Source
pub trait ServerConnector: Unpin {
    type Codec: Codec + Decoder<Message = <Self::Reactor as MessageReactor>::Inbound> + Encoder<Message = <Self::Reactor as MessageReactor>::Outbound>;
    type Reactor: MessageReactor;
    type SocketListener: SocketListener;

    // Required methods
    fn codec(&self) -> Self::Codec;
    fn new_reactor(
        &self,
        optional_outbound: Sender<<Self::Reactor as MessageReactor>::LogicalOutbound>,
        _connection: &<Self::SocketListener as SocketListener>::Stream,
    ) -> Self::Reactor;
    fn spawn_connection(
        &self,
        connection: Connection<<Self::SocketListener as SocketListener>::Stream, Self::Codec, Self::Reactor>,
    );
}
Expand description

The ServerConnector listens to a socket and spawns a Reactor for each new connection.

Required Associated Types§

Source

type Codec: Codec + Decoder<Message = <Self::Reactor as MessageReactor>::Inbound> + Encoder<Message = <Self::Reactor as MessageReactor>::Outbound>

Message encoding

Source

type Reactor: MessageReactor

Per-connection message handler

Source

type SocketListener: SocketListener

The listener type for this service. E.g., TcpSocketListener

Required Methods§

Source

fn codec(&self) -> Self::Codec

Create a new message codec for a connection

Source

fn new_reactor( &self, optional_outbound: Sender<<Self::Reactor as MessageReactor>::LogicalOutbound>, _connection: &<Self::SocketListener as SocketListener>::Stream, ) -> Self::Reactor

Create a per-connection message Reactor. You can look at the connection in here if you need some data, like a SocketAddr

Source

fn spawn_connection( &self, connection: Connection<<Self::SocketListener as SocketListener>::Stream, Self::Codec, Self::Reactor>, )

Spawn a connection - probably you just want tokio::spawn, but you might have other needs.

Implementors§