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 mut 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 mut 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
sourceimpl Clone for ClientTransport
impl Clone for ClientTransport
sourcefn clone(&self) -> ClientTransport
fn clone(&self) -> ClientTransport
Returns a copy of the value. Read more
1.0.0 · sourcefn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from source
. Read more
sourceimpl Transport for ClientTransport
impl Transport for ClientTransport
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<<ClientTransport as Transport>::Output, <ClientTransport as Transport>::Error>>
type ListenerUpgrade = Ready<Result<<ClientTransport as Transport>::Output, <ClientTransport as Transport>::Error>>
type Dial = Pin<Box<dyn Future<Output = Result<RelayedConnection, RelayError>> + Send + 'static, Global>>
type Dial = Pin<Box<dyn Future<Output = Result<RelayedConnection, RelayError>> + Send + 'static, Global>>
sourcefn listen_on(
&mut self,
addr: Multiaddr
) -> Result<Self::Listener, TransportError<Self::Error>>
fn listen_on(
&mut self,
addr: Multiaddr
) -> Result<Self::Listener, TransportError<Self::Error>>
Listens on the given [Multiaddr
], producing a stream of pending, inbound connections
and addresses this transport is listening on (cf. ListenerEvent
). Read more
sourcefn dial(
&mut self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>>
fn dial(
&mut self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>>
Dials the given [Multiaddr
], returning a future for a pending outbound connection. Read more
sourcefn dial_as_listener(
&mut self,
addr: Multiaddr
) -> Result<Self::Dial, TransportError<Self::Error>> where
Self: Sized,
fn dial_as_listener(
&mut 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
sourcefn 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
sourcefn boxed(self) -> Boxed<Self::Output> where
Self: 'static + Transport + Send,
Self::Dial: 'static,
Self::Dial: Send,
Self::Listener: 'static,
Self::Listener: Send,
Self::ListenerUpgrade: 'static,
Self::ListenerUpgrade: Send,
Self::Error: Send,
Self::Error: Sync,
fn boxed(self) -> Boxed<Self::Output> where
Self: 'static + Transport + Send,
Self::Dial: 'static,
Self::Dial: Send,
Self::Listener: 'static,
Self::Listener: Send,
Self::ListenerUpgrade: 'static,
Self::ListenerUpgrade: Send,
Self::Error: Send,
Self::Error: Sync,
Boxes the transport, including custom transport errors.
sourcefn map<F, O>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output, ConnectedPoint) -> O,
fn map<F, O>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output, ConnectedPoint) -> O,
Applies a function on the connections created by the transport.
sourcefn map_err<F, E>(self, f: F) -> MapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
fn map_err<F, E>(self, f: F) -> MapErr<Self, F> where
F: FnOnce(Self::Error) -> E,
Applies a function on the errors generated by the futures of the transport.
sourcefn 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
sourcefn and_then<C, F, O>(self, f: C) -> AndThen<Self, C> where
C: FnOnce(Self::Output, ConnectedPoint) -> F,
F: TryFuture<Ok = O>,
<F as TryFuture>::Error: 'static,
<F as TryFuture>::Error: Error,
fn and_then<C, F, O>(self, f: C) -> AndThen<Self, C> where
C: FnOnce(Self::Output, ConnectedPoint) -> F,
F: TryFuture<Ok = O>,
<F as TryFuture>::Error: 'static,
<F as TryFuture>::Error: Error,
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
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more