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§
Sourcetype Codec: Codec + Decoder<Message = <Self::Reactor as MessageReactor>::Inbound> + Encoder<Message = <Self::Reactor as MessageReactor>::Outbound>
type Codec: Codec + Decoder<Message = <Self::Reactor as MessageReactor>::Inbound> + Encoder<Message = <Self::Reactor as MessageReactor>::Outbound>
Message encoding
Sourcetype Reactor: MessageReactor
type Reactor: MessageReactor
Per-connection message handler
Sourcetype SocketListener: SocketListener
type SocketListener: SocketListener
The listener type for this service. E.g., TcpSocketListener
Required Methods§
Sourcefn new_reactor(
&self,
optional_outbound: Sender<<Self::Reactor as MessageReactor>::LogicalOutbound>,
_connection: &<Self::SocketListener as SocketListener>::Stream,
) -> Self::Reactor
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
Sourcefn spawn_connection(
&self,
connection: Connection<<Self::SocketListener as SocketListener>::Stream, Self::Codec, Self::Reactor>,
)
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.