Module wasm_peers::one_to_one
source · [−]Expand description
Library module for one-to-one network topology in simple tunnel connection.
After connection is established both peers are treated equally and have an opportunity to send messages with [::] method.
Example
This example shows two peers sending ping
and pong
messages to each other.
use wasm_peers::{ConnectionType, SessionId};
use wasm_peers::one_to_one::NetworkManager;
use web_sys::console;
const SIGNALING_SERVER_URL: &str = "ws://0.0.0.0:9001/one-to-one";
const STUN_SERVER_URL: &str = "stun:openrelay.metered.ca:80";
let session_id = SessionId::new("some-session-id".to_string());
let mut server = NetworkManager::new(
SIGNALING_SERVER_URL,
session_id.clone(),
ConnectionType::Stun { urls: STUN_SERVER_URL.to_string() },
)
.unwrap();
let server_clone = server.clone();
let server_on_open = move || server_clone.send_message("ping!").unwrap();
let server_on_message = {
move |message| {
console::log_1(&format!("server received message: {}", message).into());
}
};
server.start(server_on_open, server_on_message).unwrap();
let mut client = NetworkManager::new(
SIGNALING_SERVER_URL,
session_id,
ConnectionType::Stun { urls: STUN_SERVER_URL.to_string() },
)
.unwrap();
let client_on_open = || { /* do nothing */ };
let client_clone = client.clone();
let client_on_message = {
move |message| {
console::log_1(&format!("client received message: {}", message).into());
client_clone.send_message("pong!").unwrap();
}
};
client.start(client_on_open, client_on_message).unwrap();
Structs
Abstraction over
WebRTC
peer-to-peer connection.
Structure representing one of two equal peers.