diff options
author | metamuffin <metamuffin@disroot.org> | 2022-09-14 20:11:23 +0200 |
---|---|---|
committer | metamuffin <metamuffin@disroot.org> | 2022-09-14 20:11:23 +0200 |
commit | c752fe962df841b0cb811b09f155568735e7380c (patch) | |
tree | 1ee5ea82899a517a3ad841072e7b094836613e9e /client-native-lib/src/protocol.rs | |
parent | a8de400e17bd3eb7892cac5a0bef02b35482e946 (diff) | |
download | keks-meet-c752fe962df841b0cb811b09f155568735e7380c.tar keks-meet-c752fe962df841b0cb811b09f155568735e7380c.tar.bz2 keks-meet-c752fe962df841b0cb811b09f155568735e7380c.tar.zst |
rename crate
Diffstat (limited to 'client-native-lib/src/protocol.rs')
-rw-r--r-- | client-native-lib/src/protocol.rs | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/client-native-lib/src/protocol.rs b/client-native-lib/src/protocol.rs new file mode 100644 index 0000000..431dc42 --- /dev/null +++ b/client-native-lib/src/protocol.rs @@ -0,0 +1,43 @@ +use serde::{Deserialize, Serialize}; +use webrtc::{ + ice_transport::ice_candidate::RTCIceCandidateInit, peer_connection::sdp::sdp_type::RTCSdpType, +}; + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ClientboundPacket { + Init { your_id: usize, version: String }, + ClientJoin { id: usize }, + ClientLeave { id: usize }, + Message { sender: usize, message: String }, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ServerboundPacket { + Ping, + Relay { + recipient: Option<usize>, + message: String, + }, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct RelayMessageWrapper { + pub sender: usize, // redundant, but ensures the server didnt cheat + pub inner: RelayMessage, +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub enum RelayMessage { + Offer(RTCSessionDescriptionInit), + Answer(RTCSessionDescriptionInit), + IceCandidate(RTCIceCandidateInit), +} + +#[derive(Debug, Clone, Serialize, Deserialize)] +pub struct RTCSessionDescriptionInit { + #[serde(rename = "type")] + pub ty: RTCSdpType, + pub sdp: String, +} |