fixed trait issues
This commit is contained in:
parent
bfd0ee00a8
commit
812986fa32
|
|
@ -9,4 +9,6 @@ Cargo.lock
|
|||
# These are backup files generated by rustfmt
|
||||
**/*.rs.bk
|
||||
.DS_Store
|
||||
.idea
|
||||
.idea
|
||||
|
||||
*.properties
|
||||
|
|
@ -5,15 +5,16 @@ use crate::server::commands::{Commands};
|
|||
|
||||
use std::net::{Shutdown, TcpStream};
|
||||
use std::sync::Arc;
|
||||
use crossbeam_channel::{Receiver, TryRecvError, unbounded, Sender};
|
||||
use parking_lot::FairMutex;
|
||||
use std::collections::HashMap;
|
||||
use dashmap::DashMap;
|
||||
use std::io::prelude::*;
|
||||
use std::time::Duration;
|
||||
use regex::Regex;
|
||||
use crossbeam::{channel, Sender, Receiver, TryRecvError};
|
||||
use crossbeam_channel::unbounded;
|
||||
|
||||
|
||||
#[derive(Clone)]
|
||||
pub struct Client<'client_lifetime>{
|
||||
connected: bool,
|
||||
stream: Arc<TcpStream>,
|
||||
|
|
@ -31,13 +32,13 @@ impl<'a> Client<'a> {
|
|||
|
||||
Client {
|
||||
connected: true,
|
||||
stream: stream,
|
||||
stream,
|
||||
uuid: uuid.to_string(),
|
||||
username: username.to_string(),
|
||||
address: address.to_string(),
|
||||
server: server,
|
||||
tx_channel: tx_channel,
|
||||
rx_channel: rx_channel,
|
||||
server,
|
||||
tx_channel,
|
||||
rx_channel,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ use crate::server::commands::{Commands};
|
|||
use rust_chat_server::ThreadPool;
|
||||
use std::collections::VecDeque;
|
||||
use std::net::{TcpStream, TcpListener};
|
||||
use std::sync::{Arc, Barrier, Mutex};
|
||||
use std::sync::{Arc, Barrier, Mutex };
|
||||
use crossbeam_channel::{unbounded, Sender, Receiver};
|
||||
use parking_lot::FairMutex;
|
||||
use std::collections::HashMap;
|
||||
|
|
@ -18,7 +18,7 @@ pub struct Server<'server_lifetime> {
|
|||
name: String,
|
||||
address: String,
|
||||
author: String,
|
||||
connected_clients: Arc<Mutex<HashMap<String,Client<'server_lifetime>>>>,
|
||||
connected_clients: Arc<Mutex<HashMap<String,&'server_lifetime Client<'server_lifetime>>>>,
|
||||
thread_pool: ThreadPool,
|
||||
}
|
||||
|
||||
|
|
@ -42,14 +42,13 @@ impl<'server_lifetime> Server<'server_lifetime> {
|
|||
let listener = TcpListener::bind(self.get_address()).unwrap();
|
||||
let mut buffer = [0; 1024];
|
||||
|
||||
//stream.set_read_timeout(Some(Duration::from_millis(3000))).unwrap();
|
||||
loop {
|
||||
if let Ok((mut stream, addr)) = listener.accept() {
|
||||
println!("Connected: {}", addr);
|
||||
println!("Server: new connection, {}", addr);
|
||||
|
||||
let request = Commands::Request(None);
|
||||
request.to_string();
|
||||
self.transmit_data(&stream, "");
|
||||
self.transmit_data(&stream, &*request.to_string().as_str());
|
||||
|
||||
stream.read(&mut buffer).unwrap();
|
||||
|
||||
|
|
@ -63,15 +62,14 @@ impl<'server_lifetime> Server<'server_lifetime> {
|
|||
|
||||
let stream = Arc::new(stream);
|
||||
let mut client = Client::new(self, stream, &uuid, &username, &address);
|
||||
|
||||
/*
|
||||
|
||||
let mut clients_hashmap = self.connected_clients.lock().unwrap();
|
||||
|
||||
clients_hashmap.insert(uuid.to_string(), &client);
|
||||
|
||||
self.thread_pool.execute(move || {
|
||||
client.handle_connection();
|
||||
});
|
||||
*/
|
||||
|
||||
let mut clients_hashmap = self.connected_clients.lock().unwrap();
|
||||
clients_hashmap.insert(uuid.to_string(), client.clone());
|
||||
},
|
||||
Commands::Info(None) => {
|
||||
let mut params: HashMap<String, String> = HashMap::new();
|
||||
|
|
|
|||
Loading…
Reference in New Issue