pub struct WebSocketTransport { /* private fields */ }
Expand description
High level management interface for WebSocket transports.
Be aware that only one WebSocketTransport
can exist per node, as it
registers itself as a router for the WS
address type. Multiple
calls to WebSocketTransport::create
will fail.
To listen for incoming connections use
ws.listen()
.
To register additional connections on an already initialised
WebSocketTransport
, use ws.connect()
.
This step is optional because the underlying WebSocketRouter is capable of lazily
establishing a connection upon arrival of an initial message.
use ockam_transport_websocket::WebSocketTransport;
let ws = WebSocketTransport::create(&ctx).await?;
ws.listen("127.0.0.1:8000").await?; // Listen on port 8000
ws.connect("127.0.0.1:5000").await?; // And connect to port 5000
The same WebSocketTransport
can also bind to multiple ports.
use ockam_transport_websocket::WebSocketTransport;
let ws = WebSocketTransport::create(&ctx).await?;
ws.listen("127.0.0.1:8000").await?; // Listen on port 8000
ws.listen("127.0.0.1:9000").await?; // Listen on port 9000
Implementations§
source§impl WebSocketTransport
impl WebSocketTransport
sourcepub async fn create(ctx: &Context) -> Result<WebSocketTransport>
pub async fn create(ctx: &Context) -> Result<WebSocketTransport>
Create a new WebSocket transport and router for the current node.
use ockam_transport_websocket::WebSocketTransport;
let ws = WebSocketTransport::create(&ctx).await?;
sourcepub async fn connect<S: AsRef<str>>(&self, peer: S) -> Result<()>
pub async fn connect<S: AsRef<str>>(&self, peer: S) -> Result<()>
Establish an outgoing WebSocket connection on an existing transport.
use ockam_transport_websocket::WebSocketTransport;
let ws = WebSocketTransport::create(&ctx).await?;
ws.listen("127.0.0.1:8000").await?; // Listen on port 8000
ws.connect("127.0.0.1:5000").await?; // and connect to port 5000
sourcepub async fn listen<S: AsRef<str>>(&self, bind_addr: S) -> Result<SocketAddr>
pub async fn listen<S: AsRef<str>>(&self, bind_addr: S) -> Result<SocketAddr>
Start listening to incoming connections on an existing transport.
Returns the local address that this transport is bound to.
This can be useful, for example, when binding to port 0 to figure out which port was actually bound.
use ockam_transport_websocket::WebSocketTransport;
let ws = WebSocketTransport::create(&ctx).await?;
ws.listen("127.0.0.1:8000").await?;