Module libp2p_swarm::handler

source ·
Expand description

Once a connection to a remote peer is established, a ConnectionHandler negotiates and handles one or more specific protocols on the connection.

Protocols are negotiated and used on individual substreams of the connection. Thus a ConnectionHandler defines the inbound and outbound upgrades to apply when creating a new inbound or outbound substream, respectively, and is notified by a Swarm when these upgrades have been successfully applied, including the final output of the upgrade. A ConnectionHandler can then continue communicating with the peer over the substream using the negotiated protocol(s).

Two ConnectionHandlers can be composed with ConnectionHandler::select() in order to build a new handler supporting the combined set of protocols, with methods being dispatched to the appropriate handler according to the used protocol(s) determined by the associated types of the handlers.

Note: A ConnectionHandler handles one or more protocols in the context of a single connection with a remote. In order to handle a protocol that requires knowledge of the network as a whole, see the NetworkBehaviour trait.

Modules

Structs

Enums

Traits