feat: use TxSendMessage

This commit is contained in:
2021-05-17 23:31:13 +08:00
parent f57ffdf646
commit 05693babdd
3 changed files with 36 additions and 27 deletions

View File

@@ -15,7 +15,7 @@ use futures_util::{future, pin_mut, stream::TryStreamExt, StreamExt};
use tokio::net::{TcpListener, TcpStream};
use tungstenite::protocol::Message;
use rust_util::XResult;
use crate::types::{PeerMap, RoomMap, Tx};
use crate::types::{PeerMap, RoomMap, Tx, TxSendMessage};
use crate::msg::{RoomMessageDown, RoomMessage, RoomMessageType, RoomMessageDownType};
use crate::slash_handles::{HandleContext, HandleTextMessage, HandleTextMessageTime};
use crate::slash_handles::{HandleTextMessageExit, HandleTextMessageStatics};
@@ -81,7 +81,7 @@ fn handle_text_message(handle_context: &mut HandleContext, tx: &Tx, addr: Socket
);
let client_replaced_message = format!("Client replaced {:?} -> {:?}", peer_addr, addr);
if let Some(tx) = handle_context.peer_map.lock().unwrap().remove(peer_addr) {
tx.unbounded_send(Message::Close(None)).ok();
tx.send_close();
}
client_map.insert(msg_client_id.clone(), addr);
RoomMessageDown::create_success_reply(client_replaced_message).send(tx);
@@ -96,7 +96,7 @@ fn handle_text_message(handle_context: &mut HandleContext, tx: &Tx, addr: Socket
for (client_id, client_addr) in client_map {
if client_id != &msg_client_id {
if let Some(client_tx) = handle_context.peer_map.lock().unwrap().get(client_addr) {
client_tx.unbounded_send(Message::Text(mm.clone())).ok();
client_tx.send_text(mm.clone());
}
}
}
@@ -125,7 +125,7 @@ fn handle_text_message(handle_context: &mut HandleContext, tx: &Tx, addr: Socket
if let Some(client_map) = room_map.get_mut(room_id) {
client_map.remove(client_id);
handle_context.peer_map.lock().unwrap().remove(&addr);
tx.unbounded_send(Message::Close(None)).ok();
tx.send_close();
} else {
warning!("Not in room: {:?} - {:?}", room_id, client_id);
}
@@ -141,7 +141,7 @@ fn handle_text_message(handle_context: &mut HandleContext, tx: &Tx, addr: Socket
if let Some(client_map) = client_map {
for (_client_id, client_addr) in client_map {
if let Some(client_tx) = handle_context.peer_map.lock().unwrap().remove(&client_addr) {
client_tx.unbounded_send(Message::Close(None)).ok();
client_tx.send_close();
}
}
}