Struct ockam_transport_tcp::TcpTransport[][src]

pub struct TcpTransport { /* fields omitted */ }
Expand description

High level management interface for TCP transports

Be aware that only one TcpTransport can exist per node, as it registers itself as a router for the TCP address type. Multiple calls to TcpTransport::create will fail.

To listen for incoming connections use tcp.listen().

To register additional connections on an already initialised TcpTransport, use tcp.connect(). This step is optional because the underlying TcpRouter is capable of lazily establishing a connection upon arrival of an initial message.

use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.connect("127.0.0.1:5000").await?; // And connect to port 5000

The same TcpTransport can also bind to multiple ports.

let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.listen("127.0.0.1:9000").await?; // Listen on port 9000

Implementations

Create a new TCP transport and router for the current node

use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;

Manually establish an outgoing TCP connection on an existing transport. This step is optional because the underlying TcpRouter is capable of lazily establishing a connection upon arrival of the initial message.

use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?; // Listen on port 8000
tcp.connect("127.0.0.1:5000").await?; // and connect to port 5000

Start listening to incoming connections on an existing transport

use ockam_transport_tcp::TcpTransport;
let tcp = TcpTransport::create(&ctx).await?;
tcp.listen("127.0.0.1:8000").await?;

Create Tcp Inlet that listens on bind_addr, transforms Tcp stream into Ockam Routable Messages and forward them to Outlet using onward_route. Inlet is bidirectional: Ockam Messages sent to Inlet from Outlet (using return route) will be streamed to Tcp connection. Pair of corresponding Inlet and Outlet is called Portal.

use ockam_transport_tcp::{TcpTransport, TCP};
let hop_addr = "INTERMEDIARY_HOP:8000";
let route_path = route![(TCP, hop_addr), "outlet"];

let tcp = TcpTransport::create(&ctx).await?;
tcp.create_inlet("inlet", route_path).await?;

Stop inlet at addr

use ockam_transport_tcp::{TcpTransport, TCP};
let hop_addr = "INTERMEDIARY_HOP:8000";
let route = route![(TCP, hop_addr), "outlet"];

let tcp = TcpTransport::create(&ctx).await?;
tcp.create_inlet("inlet", route).await?;
tcp.stop_inlet("inlet").await?;

Create Tcp Outlet Listener at address, that connects to peer using Tcp, transforms Ockam Messages received from Inlet into stream and sends it to peer Tcp stream. Outlet is bidirectional: Tcp stream received from peer is transformed into Ockam Routable Messages and sent to Inlet using return route. Pair of corresponding Inlet and Outlet is called Portal.

use ockam_transport_tcp::TcpTransport;

let tcp = TcpTransport::create(&ctx).await?;
tcp.create_outlet("outlet", "localhost:9000").await?;

Stop outlet at addr

use ockam_transport_tcp::TcpTransport;
const TARGET_PEER: &str = "127.0.0.1:5000";

let tcp = TcpTransport::create(&ctx).await?;
tcp.create_outlet("outlet", TARGET_PEER).await?;
tcp.stop_outlet("outlet").await?;

Trait Implementations

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

Auto Trait Implementations

Blanket Implementations

Gets the TypeId of self. Read more

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

Performs the conversion.

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more

Instruments this type with the current Span, returning an Instrumented wrapper. Read more

Performs the conversion.

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more