This commit is contained in:
Adam 2024-05-03 23:30:02 -04:00
parent 905cee629e
commit 4fa78181c7

View file

@ -57,14 +57,15 @@ pub async fn websocket(stream: WebSocket, state: Arc<AppState>, who: SocketAddr)
let _greeting = sender.send(Message::Text(greeting(&state))).await; let _greeting = sender.send(Message::Text(greeting(&state))).await;
// subscribe to channel // subscribe to broadcast channel
let mut rx = state.tx.subscribe(); let mut rx = state.tx.subscribe();
// broadcast join // ANNOUNCE THY PRESENCE
let msg = format!("{who} is here, bitches!"); let msg = format!("{who} is here, bitches!");
tracing::debug!("{msg}"); tracing::debug!("{msg}");
let _ = state.tx.send(msg); let _ = state.tx.send(msg);
// handle broadcasting further awesome messages
let mut send_task = tokio::spawn(async move { let mut send_task = tokio::spawn(async move {
while let Ok(msg) = rx.recv().await { while let Ok(msg) = rx.recv().await {
if sender.send(Message::Text(msg)).await.is_err() { if sender.send(Message::Text(msg)).await.is_err() {
@ -77,6 +78,7 @@ pub async fn websocket(stream: WebSocket, state: Arc<AppState>, who: SocketAddr)
let tx = state.tx.clone(); let tx = state.tx.clone();
let name = who.clone(); let name = who.clone();
// handle new incoming messages
let mut recv_task = tokio::spawn(async move { let mut recv_task = tokio::spawn(async move {
while let Some(Ok(message)) = receiver.next().await { while let Some(Ok(message)) = receiver.next().await {
match message { match message {