diff --git a/src/main.rs b/src/main.rs index 787b74e..6202e0a 100644 --- a/src/main.rs +++ b/src/main.rs @@ -212,13 +212,7 @@ fn handle_text_message(handle_context: &mut HandleContext, tx: &Tx, addr: Socket let room_map = handle_context.room_map.lock().unwrap(); let client_map = room_map.get(room_id); - let m = RoomMessageDown { - r#type: RoomMessageDownType::PeerMessage, - reply_code: Some(200), - reply_message: Some("ok".into()), - peer_id: Some(client_id.clone()), - data: room_message.data, - }; + let m = RoomMessageDown::create_peer_message(peer_id, room_message.data); let mm = serde_json::to_string(&m)?; if let Some(client_map) = client_map { if let Some(peer_client_addr) = client_map.get(peer_id) { diff --git a/src/msg.rs b/src/msg.rs index c553dd5..0205e2f 100644 --- a/src/msg.rs +++ b/src/msg.rs @@ -57,6 +57,7 @@ impl RoomMessageDown { ..Default::default() } } + pub fn create_success_reply(success_message: S) -> Self where S: Into { Self { r#type: RoomMessageDownType::ReplyMessage, @@ -65,6 +66,7 @@ impl RoomMessageDown { ..Default::default() } } + pub fn create_peer_enter(peer_id: S) -> Self where S: Into { let peer_id = peer_id.into(); Self { @@ -76,6 +78,16 @@ impl RoomMessageDown { } } + pub fn create_peer_message(peer_id: S, data: Option) -> Self where S: Into { + RoomMessageDown { + r#type: RoomMessageDownType::PeerMessage, + reply_code: Some(200), + reply_message: Some("ok".into()), + peer_id: Some(peer_id.into()), + data, + } + } + pub fn send(&self, tx: &Tx) { if let Ok(mm) = serde_json::to_string(self) { tx.send_text(mm);