~starkingdoms/starkingdoms

c663cfb10a36ba2fca8fc9450ebb14e3deb20e2e — c0repwn3r 2 years ago fdeaf0d
cleanup
M client/src/lib.rs => client/src/lib.rs +4 -4
@@ 1,7 1,7 @@
use std::error::Error;
use futures::stream::{SplitSink, SplitStream};
use futures::StreamExt;
use log::{debug, error, info, Level, trace, warn};
use log::{error, info, Level, trace, warn};
use wasm_bindgen::prelude::*;
use ws_stream_wasm::{WsErr, WsMessage, WsMeta, WsStream};
use protocol::State;


@@ 12,11 12,11 @@ use futures::SinkExt;
use lazy_static::lazy_static;
use std::sync::Arc;
use std::sync::RwLock;
use std::thread;
use std::time::Duration;


use async_recursion::async_recursion;
use futures::FutureExt;
use js_sys::Math::sqrt;

use wasm_bindgen_futures::JsFuture;
use web_sys::Window;


M client/src/macros.rs => client/src/macros.rs +5 -5
@@ 1,8 1,8 @@
use std::error::Error;
use std::io;
use futures::{AsyncRead, AsyncWrite, FutureExt, Stream, StreamExt};
use futures::stream::SplitStream;
use serde::{Deserialize, Serialize};


use futures::{FutureExt, StreamExt};

use serde::{Serialize};
use ws_stream_wasm::WsMessage;

#[macro_export]

M server/src/client_handler.rs => server/src/client_handler.rs +2 -2
@@ 7,7 7,7 @@ use log::{error, info};
use tokio::sync::mpsc::Receiver;
use tokio_tungstenite::WebSocketStream;
use tungstenite::Message;
use protocol::{GoodbyeReason, MessageC2S, MessageS2C, PROTOCOL_VERSION, ps2c, State};
use protocol::{GoodbyeReason, MessageC2S, MessageS2C, PROTOCOL_VERSION, State};
use crate::handler::{ClientHandlerMessage, ClientManager};
use crate::{send, recv};



@@ 109,7 109,7 @@ pub async fn handle_client(mgr: ClientManager, remote_addr: SocketAddr, mut rx: 
                        MessageC2S::Chat { message } => {
                            info!("[{}] CHAT: [{}] {}", remote_addr, username, message);

                            for (addr, client_thread) in mgr.handlers.read().await.iter() {
                            for (_addr, client_thread) in mgr.handlers.read().await.iter() {
                                match client_thread.tx.send(ClientHandlerMessage::ChatMessage { from: username.clone(), message: message.clone() }).await {
                                    Ok(_) => (),
                                    Err(e) => {

M server/src/handler.rs => server/src/handler.rs +4 -4
@@ 1,12 1,12 @@
use std::collections::HashMap;
use std::error::Error;

use std::net::SocketAddr;
use std::sync::Arc;
use serde::Serialize;

use tokio::sync::mpsc::Sender;
use tokio::sync::RwLock;
use tungstenite::Message;
use protocol::State;



#[derive(Clone)]
pub struct ClientManager {

M server/src/macros.rs => server/src/macros.rs +6 -6
@@ 1,9 1,9 @@
use std::error::Error;
use std::io;
use futures::{AsyncRead, AsyncWrite, FutureExt, Stream, StreamExt};
use futures::stream::SplitStream;
use serde::{Deserialize, Serialize};
use tokio_tungstenite::WebSocketStream;


use futures::{FutureExt, StreamExt};

use serde::{Serialize};

use tungstenite::Message;

#[macro_export]

M server/src/main.rs => server/src/main.rs +4 -4
@@ 4,12 4,12 @@ use std::sync::Arc;
use hyper::{Body, header, Request, Response, Server, server::conn::AddrStream, StatusCode, upgrade};
use hyper::service::{make_service_fn, service_fn};
use tokio_tungstenite::WebSocketStream;
use tungstenite::{Error, handshake};
use tungstenite::{handshake};
use futures::stream::StreamExt;
use lazy_static::lazy_static;
use log::{error, info, Level};
use tokio::sync::RwLock;
use protocol::State;

use crate::handler::{ClientHandler, ClientManager};
use crate::client_handler::handle_client;
use crate::timer::timer_main;


@@ 96,7 96,7 @@ async fn handle_request(mut request: Request<Body>, remote_addr: SocketAddr, mgr
        ("/ws", false) => {
            Ok(Response::builder().status(400).body(Body::from("Connection-Upgrade header missing")).unwrap())
        },
        (url@_, false) => {
        (_url@_, false) => {
            // typical HTTP file request
            // TODO
            Ok(Response::new(Body::empty()))


@@ 136,7 136,7 @@ async fn main() {
    });

    let mgr_timer = cmgr.clone();
    let timer_thread = tokio::spawn(async move {
    let _timer_thread = tokio::spawn(async move {
        timer_main(mgr_timer).await;
    });


M server/src/timer.rs => server/src/timer.rs +4 -4
@@ 1,7 1,7 @@
use std::error::Error;

use std::time::Duration;
use log::{error, trace};
use tokio::sync::mpsc::Receiver;
use log::{error};

use tokio::time::sleep;
use crate::handler::{ClientHandlerMessage, ClientManager};



@@ 9,7 9,7 @@ pub async fn timer_main(mgr: ClientManager) {
    loop {
        sleep(Duration::from_millis(5)).await;

        for (addr, client_thread) in mgr.handlers.read().await.iter() {
        for (_addr, client_thread) in mgr.handlers.read().await.iter() {
            match client_thread.tx.send(ClientHandlerMessage::Tick).await {
                Ok(_) => (),
                Err(e) => {