Struct libp2p_relay::v2::client::transport::ClientTransport
source · [−]pub struct ClientTransport { /* private fields */ }
Expand description
A Transport
enabling client relay capabilities.
Note: The transport only handles listening and dialing on relayed [Multiaddr
], and depends on
an other transport to do the actual transmission of data. They should be combined through the
OrTransport
.
Allows the local node to:
-
Establish relayed connections by dialing
/p2p-circuit
addresses.let actual_transport = MemoryTransport::default(); let (relay_transport, behaviour) = client::Client::new_transport_and_behaviour( PeerId::random(), ); let transport = OrTransport::new(relay_transport, actual_transport); let dst_addr_via_relay = Multiaddr::empty() .with(Protocol::Memory(40)) // Relay address. .with(Protocol::P2p(relay_id.into())) // Relay peer id. .with(Protocol::P2pCircuit) // Signal to connect via relay and not directly. .with(Protocol::P2p(destination_id.into())); // Destination peer id. transport.dial(dst_addr_via_relay).unwrap();
-
Listen for incoming relayed connections via specific relay.
let actual_transport = MemoryTransport::default(); let (relay_transport, behaviour) = client::Client::new_transport_and_behaviour( local_peer_id, ); let transport = OrTransport::new(relay_transport, actual_transport); let relay_addr = Multiaddr::empty() .with(Protocol::Memory(40)) // Relay address. .with(Protocol::P2p(relay_id.into())) // Relay peer id. .with(Protocol::P2pCircuit); // Signal to listen via remote relay node. transport.listen_on(relay_addr).unwrap();
Trait Implementations
type Output = RelayedConnection
type Output = RelayedConnection
The result of a connection setup process, including protocol upgrades. Read more
type Error = RelayError
type Error = RelayError
An error that occurred during connection setup.
type Listener = RelayListener
type Listener = RelayListener
type ListenerUpgrade = Ready<Result<Self::Output, Self::Error>>
type ListenerUpgrade = Ready<Result<Self::Output, Self::Error>>
type Dial = RelayedDial
type Dial = RelayedDial
Listens on the given [Multiaddr
], producing a stream of pending, inbound connections
and addresses this transport is listening on (cf. ListenerEvent
). Read more
Dials the given [Multiaddr
], returning a future for a pending outbound connection. Read more
fn dial_as_listener(
self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>> where
Self: Sized,
fn dial_as_listener(
self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>> where
Self: Sized,
As Transport::dial
but has the local node act as a listener on the outgoing connection. Read more
fn address_translation(
&self,
_server: &Multiaddr,
_observed: &Multiaddr
) -> Option<Multiaddr>
fn address_translation(
&self,
_server: &Multiaddr,
_observed: &Multiaddr
) -> Option<Multiaddr>
Performs a transport-specific mapping of an address observed
by
a remote onto a local listen
address to yield an address for
the local node that may be reachable for other peers. Read more
Boxes the transport, including custom transport errors.
Applies a function on the connections created by the transport.
Applies a function on the errors generated by the futures of the transport.
fn or_transport<U>(self, other: U) -> OrTransport<Self, U> where
U: Transport,
<U as Transport>::Error: 'static,
fn or_transport<U>(self, other: U) -> OrTransport<Self, U> where
U: Transport,
<U as Transport>::Error: 'static,
Adds a fallback transport that is used when encountering errors while establishing inbound or outbound connections. Read more
Applies a function producing an asynchronous result to every connection created by this transport. Read more
Auto Trait Implementations
impl !RefUnwindSafe for ClientTransport
impl Send for ClientTransport
impl Sync for ClientTransport
impl Unpin for ClientTransport
impl !UnwindSafe for ClientTransport
Blanket Implementations
Mutably borrows from an owned value. Read more