summaryrefslogtreecommitdiff
path: root/game_server/src/server.rs
diff options
context:
space:
mode:
Diffstat (limited to 'game_server/src/server.rs')
-rw-r--r--game_server/src/server.rs15
1 files changed, 12 insertions, 3 deletions
diff --git a/game_server/src/server.rs b/game_server/src/server.rs
index c87594b..6294e2c 100644
--- a/game_server/src/server.rs
+++ b/game_server/src/server.rs
@@ -1,16 +1,20 @@
use websocket::{OwnedMessage,
+ stream::sync::Splittable,
sync::Server,
client::sync::Client,
server::{NoTlsAcceptor,
- sync::AcceptResult}};
+ sync::AcceptResult},
+ receiver, sender};
use std::net::{SocketAddr, ToSocketAddrs, TcpStream};
use std::sync::{mpsc,
- mpsc::{Sender, Receiver},
- Arc, Mutex};
+ mpsc::{Sender, Receiver}};
use std::collections::HashMap;
use super::lobby::Lobby;
use super::backend_connection::BackendConnection;
+pub type ClientReceiver = receiver::Reader<<TcpStream as Splittable>::Reader>;
+pub type ClientSender = sender::Writer<<TcpStream as Splittable>::Writer>;
+
const PROTOCOL: &str = "tuesday";
pub type Token = u32;
@@ -59,6 +63,11 @@ impl GameClient {
fn host_name(&self) -> SocketAddr {
self.addr
}
+
+ pub fn split(self) -> (ClientSender, ClientReceiver) {
+ let (mut rec, mut sen) = self.client.split().unwrap();
+ (sen, rec)
+ }
}
type ClientConnection = Result<GameClient, GameServerError>;