cleanup and make client better
This commit is contained in:
parent
41015810cb
commit
998924512c
1 changed files with 29 additions and 15 deletions
40
src/main.rs
40
src/main.rs
|
@ -1,14 +1,20 @@
|
||||||
use futures_util::{SinkExt, StreamExt, TryFutureExt};
|
use futures_util::{SinkExt, StreamExt, TryFutureExt};
|
||||||
use std::collections::HashMap;
|
use std::{
|
||||||
use std::sync::{
|
collections::HashMap,
|
||||||
|
error::Error,
|
||||||
|
fs,
|
||||||
|
result::Result,
|
||||||
|
sync::{
|
||||||
atomic::{AtomicUsize, Ordering},
|
atomic::{AtomicUsize, Ordering},
|
||||||
Arc,
|
Arc,
|
||||||
|
},
|
||||||
};
|
};
|
||||||
use std::{error::Error, fs, result::Result};
|
|
||||||
use tokio::sync::{mpsc, RwLock};
|
use tokio::sync::{mpsc, RwLock};
|
||||||
use tokio_stream::wrappers::UnboundedReceiverStream;
|
use tokio_stream::wrappers::UnboundedReceiverStream;
|
||||||
use warp::ws::{Message, WebSocket};
|
use warp::{
|
||||||
use warp::Filter;
|
ws::{Message, WebSocket},
|
||||||
|
Filter,
|
||||||
|
};
|
||||||
|
|
||||||
#[allow(non_snake_case)]
|
#[allow(non_snake_case)]
|
||||||
pub mod CAHd_game;
|
pub mod CAHd_game;
|
||||||
|
@ -125,7 +131,13 @@ async fn user_connected(ws: WebSocket, users: Users) {
|
||||||
let (tx, rx) = mpsc::unbounded_channel();
|
let (tx, rx) = mpsc::unbounded_channel();
|
||||||
let mut rx = UnboundedReceiverStream::new(rx);
|
let mut rx = UnboundedReceiverStream::new(rx);
|
||||||
|
|
||||||
let _ = user_ws_tx.send(Message::text(format!("Server Message: Welcome User {}",my_id))).await;
|
let _ = user_ws_tx
|
||||||
|
.send(Message::text(format!(
|
||||||
|
"Server Message: Welcome User {}",
|
||||||
|
my_id
|
||||||
|
)))
|
||||||
|
.await;
|
||||||
|
|
||||||
tokio::task::spawn(async move {
|
tokio::task::spawn(async move {
|
||||||
while let Some(message) = rx.next().await {
|
while let Some(message) = rx.next().await {
|
||||||
user_ws_tx
|
user_ws_tx
|
||||||
|
@ -169,7 +181,7 @@ async fn user_message(my_id: usize, msg: Message, users: &Users) {
|
||||||
return;
|
return;
|
||||||
};
|
};
|
||||||
|
|
||||||
let new_msg = format!("<User#{}>: {}", my_id, msg);
|
let new_msg = format!("User {}: {}", my_id, msg);
|
||||||
|
|
||||||
// New message from this user, send it to everyone else (except same uid)...
|
// New message from this user, send it to everyone else (except same uid)...
|
||||||
for (&uid, tx) in users.read().await.iter() {
|
for (&uid, tx) in users.read().await.iter() {
|
||||||
|
@ -193,15 +205,17 @@ async fn user_disconnected(my_id: usize, users: &Users) {
|
||||||
static INDEX_HTML: &str = r#"<!DOCTYPE html>
|
static INDEX_HTML: &str = r#"<!DOCTYPE html>
|
||||||
<html lang="en">
|
<html lang="en">
|
||||||
<head>
|
<head>
|
||||||
<title>Warp Chat</title>
|
<title>Cards For Humanity Test Client</title>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<h1>Cards</h1>
|
<h1>Cards</h1>
|
||||||
<div id="chat">
|
<div id="chat">
|
||||||
<p><em>Connecting...</em></p>
|
<p><em>Connecting...</em></p>
|
||||||
</div>
|
</div>
|
||||||
<input type="text" id="text" />
|
<form id="muhForm" onsubmit="onSubmit();return false">
|
||||||
<button type="button" id="send">Send</button>
|
<input type="text" id="text" autocomplete="off" />
|
||||||
|
<button type="submit" id="send">Send</button>
|
||||||
|
</form>
|
||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
const chat = document.getElementById('chat');
|
const chat = document.getElementById('chat');
|
||||||
const text = document.getElementById('text');
|
const text = document.getElementById('text');
|
||||||
|
@ -226,13 +240,13 @@ static INDEX_HTML: &str = r#"<!DOCTYPE html>
|
||||||
chat.getElementsByTagName('em')[0].innerText = 'Disconnected!';
|
chat.getElementsByTagName('em')[0].innerText = 'Disconnected!';
|
||||||
};
|
};
|
||||||
|
|
||||||
send.onclick = function() {
|
function onSubmit() {
|
||||||
const msg = text.value;
|
const msg = text.value;
|
||||||
ws.send(msg);
|
ws.send(msg);
|
||||||
text.value = '';
|
text.value = '';
|
||||||
|
|
||||||
message('<You>: ' + msg);
|
message('You: ' + msg);
|
||||||
};
|
}
|
||||||
</script>
|
</script>
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
||||||
|
|
Loading…
Add table
Reference in a new issue