pub struct Transport { /* 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-circuitaddresses.let actual_transport = MemoryTransport::default(); let (relay_transport, behaviour) = relay::client::new( 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, DialOpts { port_use: PortUse::Reuse, role: Endpoint::Dialer, }).unwrap();
- 
Listen for incoming relayed connections via specific relay. let actual_transport = MemoryTransport::default(); let (relay_transport, behaviour) = relay::client::new( 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(ListenerId::next(), relay_addr).unwrap();
Trait Implementations§
Source§impl Transport for Transport
 
impl Transport for Transport
Source§type Output = Connection
 
type Output = Connection
The result of a connection setup process, including protocol upgrades. Read more
Source§type ListenerUpgrade = Ready<Result<<Transport as Transport>::Output, <Transport as Transport>::Error>>
 
type ListenerUpgrade = Ready<Result<<Transport as Transport>::Output, <Transport as Transport>::Error>>
Source§fn listen_on(
    &mut self,
    listener_id: ListenerId,
    addr: Multiaddr,
) -> Result<(), TransportError<Self::Error>>
 
fn listen_on( &mut self, listener_id: ListenerId, addr: Multiaddr, ) -> Result<(), TransportError<Self::Error>>
Listens on the given [
Multiaddr] for inbound connections with a provided [ListenerId].Source§fn remove_listener(&mut self, id: ListenerId) -> bool
 
fn remove_listener(&mut self, id: ListenerId) -> bool
Remove a listener. Read more
Source§fn dial(
    &mut self,
    addr: Multiaddr,
    dial_opts: DialOpts,
) -> Result<Self::Dial, TransportError<Self::Error>>
 
fn dial( &mut self, addr: Multiaddr, dial_opts: DialOpts, ) -> Result<Self::Dial, TransportError<Self::Error>>
Dials the given [
Multiaddr], returning a future for a pending outbound connection. Read moreSource§fn poll(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>,
) -> Poll<TransportEvent<Self::ListenerUpgrade, Self::Error>>where
    Self: Sized,
 
fn poll(
    self: Pin<&mut Self>,
    cx: &mut Context<'_>,
) -> Poll<TransportEvent<Self::ListenerUpgrade, Self::Error>>where
    Self: Sized,
Poll for [
TransportEvent]s. Read more§fn map<F, O>(self, f: F) -> Map<Self, F>
 
fn map<F, O>(self, f: F) -> Map<Self, F>
Applies a function on the connections created by the transport.
§fn map_err<F, E>(self, f: F) -> MapErr<Self, F>
 
fn map_err<F, E>(self, f: F) -> MapErr<Self, F>
Applies a function on the errors generated by the futures of the transport.
§fn or_transport<U>(self, other: U) -> OrTransport<Self, U>where
    Self: Sized,
    U: Transport,
    <U as Transport>::Error: 'static,
 
fn or_transport<U>(self, other: U) -> OrTransport<Self, U>where
    Self: Sized,
    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
Auto Trait Implementations§
impl !Freeze for Transport
impl !RefUnwindSafe for Transport
impl Send for Transport
impl !Sync for Transport
impl Unpin for Transport
impl !UnwindSafe for Transport
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
 
impl<T> BorrowMut<T> for Twhere
    T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
 
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
§impl<T> Instrument for T
 
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
 
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
 
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
 
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
 
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
 
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts 
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more