logo
Expand description

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

Protocols are negotiated and used on individual substreams of the connection. Thus a ProtocolsHandler 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 ProtocolsHandler can then continue communicating with the peer over the substream using the negotiated protocol(s).

Two ProtocolsHandlers can be composed with ProtocolsHandler::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 ProtocolsHandler 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

A ProtocolsHandler implementation that combines multiple other ProtocolsHandlers indexed by some key.

Structs

Implementation of ProtocolsHandler that doesn’t handle anything.

Implementation of IntoProtocolsHandler that combines two protocols into one.

Wrapper around a protocol handler that turns the input event into something else.

Wrapper around a protocol handler that turns the output event into something else.

Wraps around an implementation of ProtocolsHandler, and implements NodeHandler.

Prototype for a NodeHandlerWrapper.

A ProtocolsHandler that opens a new substream for each request.

Configuration parameters for the OneShotHandler

Implementation of ProtocolsHandler that combines two protocols into one.

Configuration of inbound or outbound substream protocol(s) for a ProtocolsHandler.

Enums

How long the connection should be kept alive.

Error generated by the NodeHandlerWrapper.

Event produced by a handler.

Error that can happen on an outbound substream opening attempt.

Traits

Implemented automatically on all types that implement InboundUpgrade and Send + 'static.

Prototype for a ProtocolsHandler.

Implemented automatically on all types that implement OutboundUpgrade and Send + 'static.

A handler for a set of protocols used on a connection with a remote.

Implemented automatically on all types that implement UpgradeInfo and Send + 'static.