feat: ✨ rtc peer connection send_offer, receive_offer
This commit is contained in:
parent
0aa65f0f60
commit
ffc802eb59
4 changed files with 102 additions and 28 deletions
|
@ -1,18 +1,31 @@
|
|||
use std::sync::LazyLock;
|
||||
|
||||
use chrono::DateTime;
|
||||
use leptos::logging::log;
|
||||
use protocol::Signal;
|
||||
use serde_json::json;
|
||||
use protocol::{RTCSessionOffer, Signal};
|
||||
use reqwest::Response;
|
||||
use serde_json::{Value, json};
|
||||
|
||||
pub async fn start_signalling(username: String, signal_address: String) {
|
||||
const SIGNALLING_ADDRESS: &str = "http://127.0.0.1:4546";
|
||||
static REQUEST_CLIENT: LazyLock<reqwest::Client> = LazyLock::new(|| reqwest::Client::new());
|
||||
|
||||
async fn post_json(json: &Value) -> Result<Response, reqwest::Error> {
|
||||
REQUEST_CLIENT
|
||||
.post(SIGNALLING_ADDRESS)
|
||||
.json(json)
|
||||
.send()
|
||||
.await
|
||||
}
|
||||
|
||||
pub async fn start_signalling(username: String) {
|
||||
log!("Start Signalling");
|
||||
log!("{}\n{}", username, signal_address);
|
||||
let request_client = reqwest::Client::new();
|
||||
log!("{}\n{}", username, SIGNALLING_ADDRESS);
|
||||
let signal = Signal {
|
||||
username,
|
||||
time: DateTime::default(),
|
||||
};
|
||||
let body = json!(signal);
|
||||
match request_client.post(signal_address).json(&body).send().await {
|
||||
let json = json!(signal);
|
||||
match post_json(&json).await {
|
||||
Ok(signal_response) => log!("{:#?}", signal_response),
|
||||
Err(err_val) => {
|
||||
log!("Error: Signal Post | {}", err_val);
|
||||
|
@ -20,7 +33,42 @@ pub async fn start_signalling(username: String, signal_address: String) {
|
|||
}
|
||||
}
|
||||
|
||||
pub async fn send_offer() {}
|
||||
pub async fn receive_offer() {}
|
||||
pub async fn send_answer() {}
|
||||
pub async fn receive_answer() {}
|
||||
pub async fn send_offer(rtc_session_offer: RTCSessionOffer) {
|
||||
let rtc_session_offer = json!(rtc_session_offer);
|
||||
match post_json(&rtc_session_offer).await {
|
||||
Ok(signal_response) => log!("{:#?}", signal_response),
|
||||
Err(err_val) => {
|
||||
log!("Error: Signal Post | {}", err_val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn receive_offer(username: String) {
|
||||
let json = json!(username);
|
||||
match post_json(&json).await {
|
||||
Ok(signal_response) => log!("{:#?}", signal_response),
|
||||
Err(err_val) => {
|
||||
log!("Error: Signal Post | {}", err_val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn send_answer(rtc_session_offer: RTCSessionOffer) {
|
||||
let rtc_session_offer = json!(rtc_session_offer);
|
||||
match post_json(&rtc_session_offer).await {
|
||||
Ok(signal_response) => log!("{:#?}", signal_response),
|
||||
Err(err_val) => {
|
||||
log!("Error: Signal Post | {}", err_val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub async fn receive_answer(username: String) {
|
||||
let json = json!(username);
|
||||
match post_json(&json).await {
|
||||
Ok(signal_response) => log!("{:#?}", signal_response),
|
||||
Err(err_val) => {
|
||||
log!("Error: Signal Post | {}", err_val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue