package Server; import Store.Book; import Store.User; import com.corundumstudio.socketio.SocketIOServer; import com.corundumstudio.socketio.listener.ConnectListener; import com.corundumstudio.socketio.listener.DisconnectListener; import com.corundumstudio.socketio.Configuration; public class SocketServer { public static SocketIOServer server; public SocketServer(Configuration config) { server = new SocketIOServer(config); server.addConnectListener(onConnected()); server.addDisconnectListener(onDisconnected()); server.addEventListener("login", JSONMessage.class, User.loginHandler()); server.addEventListener("signUp", JSONMessage.class, User.signUpHandler()); server.addEventListener("issue", JSONMessage.class, Book.issueHandler()); server.addEventListener("return", JSONMessage.class, Book.returnHandler()); server.addEventListener("getAllBooks", JSONMessage.class, Book.getListHandler(false)); server.addEventListener("getAvailableBooks", JSONMessage.class, Book.getListHandler(true)); } private ConnectListener onConnected() { return (client -> { System.out.println("New connection!"); }); } private DisconnectListener onDisconnected() { return (client -> { System.out.println("Disconnected!"); }); } public void start() { server.start(); Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { public void run() { server.stop(); } }, "Shutdown-thread")); } public void stop() { server.stop(); } }