Add: Make use of SessionManager
This commit is contained in:
@@ -1,7 +1,9 @@
|
|||||||
package ch.unibas.dmi.dbis.cs108.casono.server;
|
package ch.unibas.dmi.dbis.cs108.casono.server;
|
||||||
|
|
||||||
|
import ch.unibas.dmi.dbis.cs108.casono.server.network.DisconnectEvent;
|
||||||
import ch.unibas.dmi.dbis.cs108.casono.server.network.EventBus;
|
import ch.unibas.dmi.dbis.cs108.casono.server.network.EventBus;
|
||||||
import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager;
|
import ch.unibas.dmi.dbis.cs108.casono.server.network.NetworkManager;
|
||||||
|
import ch.unibas.dmi.dbis.cs108.casono.server.network.SessionManager;
|
||||||
|
|
||||||
public class ServerApp {
|
public class ServerApp {
|
||||||
public static void start(String arg) {
|
public static void start(String arg) {
|
||||||
@@ -9,7 +11,9 @@ public class ServerApp {
|
|||||||
System.out.println("You've selected the server. It will accept connections at port " + port);
|
System.out.println("You've selected the server. It will accept connections at port " + port);
|
||||||
|
|
||||||
EventBus eventBus = new EventBus();
|
EventBus eventBus = new EventBus();
|
||||||
NetworkManager networkManager = new NetworkManager(port, eventBus);
|
SessionManager sessionManager = new SessionManager();
|
||||||
|
eventBus.subscribe(DisconnectEvent.class, event -> sessionManager.removeSession(event.sessionId()));
|
||||||
|
NetworkManager networkManager = new NetworkManager(port, sessionManager, eventBus);
|
||||||
networkManager.start();
|
networkManager.start();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,13 +15,15 @@ public class NetworkManager implements Runnable {
|
|||||||
private Logger logger;
|
private Logger logger;
|
||||||
private Thread thread;
|
private Thread thread;
|
||||||
private Boolean running;
|
private Boolean running;
|
||||||
|
private SessionManager sessionManager;
|
||||||
private EventBus eventBus;
|
private EventBus eventBus;
|
||||||
|
|
||||||
public NetworkManager(Integer port, EventBus eventBus) {
|
public NetworkManager(Integer port, SessionManager sessionManager, EventBus eventBus) {
|
||||||
this.port = port;
|
this.port = port;
|
||||||
this.logger = LogManager.getLogger(NetworkManager.class);
|
this.logger = LogManager.getLogger(NetworkManager.class);
|
||||||
this.thread = new Thread(this, "networkManager");
|
this.thread = new Thread(this, "networkManager");
|
||||||
this.running = true;
|
this.running = true;
|
||||||
|
this.sessionManager = sessionManager;
|
||||||
this.eventBus = eventBus;
|
this.eventBus = eventBus;
|
||||||
this.eventBus.subscribe(DisconnectEvent.class, event -> clientDisconnected(event));
|
this.eventBus.subscribe(DisconnectEvent.class, event -> clientDisconnected(event));
|
||||||
}
|
}
|
||||||
@@ -46,6 +48,7 @@ public class NetworkManager implements Runnable {
|
|||||||
System.out.println("Accepted connection from " + clientSocket.getRemoteSocketAddress());
|
System.out.println("Accepted connection from " + clientSocket.getRemoteSocketAddress());
|
||||||
|
|
||||||
Session session = new Session(new TcpTransport(clientSocket), eventBus);
|
Session session = new Session(new TcpTransport(clientSocket), eventBus);
|
||||||
|
sessionManager.addSession(session);
|
||||||
session.start();
|
session.start();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -12,9 +12,11 @@ public class SessionManager {
|
|||||||
|
|
||||||
public void addSession(Session session) {
|
public void addSession(Session session) {
|
||||||
sessions.put(session.getId(), session);
|
sessions.put(session.getId(), session);
|
||||||
|
System.out.println("Added session " + session.getId().value() + " to session manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
public Session removeSession(SessionId id) {
|
public Session removeSession(SessionId id) {
|
||||||
|
System.out.println("Removed session " + id.value() + " from session manager");
|
||||||
return sessions.remove(id);
|
return sessions.remove(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user