aboutsummaryrefslogtreecommitdiff
path: root/src/Server/SocketServer.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/Server/SocketServer.java')
-rw-r--r--src/Server/SocketServer.java53
1 files changed, 53 insertions, 0 deletions
diff --git a/src/Server/SocketServer.java b/src/Server/SocketServer.java
new file mode 100644
index 0000000..f3a8f2e
--- /dev/null
+++ b/src/Server/SocketServer.java
@@ -0,0 +1,53 @@
+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();
+ }
+}