summaryrefslogtreecommitdiff
path: root/server/src
diff options
context:
space:
mode:
authorilotterytea <iltsu@alright.party>2025-01-04 19:25:10 +0500
committerilotterytea <iltsu@alright.party>2025-01-04 19:25:10 +0500
commitf967b2bfd478d1f646d1acb236312d605497a0b9 (patch)
tree4d583308b08cd58ee19366ac3321a75a37b56dac /server/src
parent53958edbe7519dc7e842d896d0ada1e0c5cb859a (diff)
feat: 'server' and 'shared' modules
Diffstat (limited to 'server/src')
-rw-r--r--server/src/kz/ilotterytea/maxon/MaxonServer.java52
-rw-r--r--server/src/kz/ilotterytea/maxon/ServerLauncher.java8
-rw-r--r--server/src/main/resources/logback.xml15
3 files changed, 75 insertions, 0 deletions
diff --git a/server/src/kz/ilotterytea/maxon/MaxonServer.java b/server/src/kz/ilotterytea/maxon/MaxonServer.java
new file mode 100644
index 0000000..7a38a7f
--- /dev/null
+++ b/server/src/kz/ilotterytea/maxon/MaxonServer.java
@@ -0,0 +1,52 @@
+package kz.ilotterytea.maxon;
+
+import org.java_websocket.WebSocket;
+import org.java_websocket.handshake.ClientHandshake;
+import org.java_websocket.server.WebSocketServer;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import java.net.InetSocketAddress;
+
+public class MaxonServer extends WebSocketServer {
+ private static MaxonServer instance;
+
+ private final Logger log;
+
+ private MaxonServer() {
+ super(new InetSocketAddress(31084));
+ this.log = LoggerFactory.getLogger(MaxonServer.class);
+ }
+
+ @Override
+ public void onOpen(WebSocket conn, ClientHandshake handshake) {
+ log.info("{} connected!", conn.getRemoteSocketAddress().getAddress().getHostAddress());
+ }
+
+ @Override
+ public void onClose(WebSocket conn, int code, String reason, boolean remote) {
+ log.info("Connection {} has been closed! ({} {} {})", conn, code, reason, remote);
+ }
+
+ @Override
+ public void onMessage(WebSocket conn, String message) {
+ log.info("{} says {}", conn, message);
+ }
+
+ @Override
+ public void onError(WebSocket conn, Exception ex) {
+ log.error("Something went wrong", ex);
+ }
+
+ @Override
+ public void onStart() {
+ log.info("Running the server on port {}!", getPort());
+ setConnectionLostTimeout(0);
+ setConnectionLostTimeout(100);
+ }
+
+ public static MaxonServer getInstance() {
+ if (instance == null) instance = new MaxonServer();
+ return instance;
+ }
+}
diff --git a/server/src/kz/ilotterytea/maxon/ServerLauncher.java b/server/src/kz/ilotterytea/maxon/ServerLauncher.java
new file mode 100644
index 0000000..4fdd174
--- /dev/null
+++ b/server/src/kz/ilotterytea/maxon/ServerLauncher.java
@@ -0,0 +1,8 @@
+package kz.ilotterytea.maxon;
+
+public class ServerLauncher {
+ public static void main(String[] args) {
+ MaxonServer server = MaxonServer.getInstance();
+ server.start();
+ }
+}
diff --git a/server/src/main/resources/logback.xml b/server/src/main/resources/logback.xml
new file mode 100644
index 0000000..4b08185
--- /dev/null
+++ b/server/src/main/resources/logback.xml
@@ -0,0 +1,15 @@
+<configuration>
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <!-- encoders are assigned the type
+ ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
+ <encoder>
+ <pattern>%cyan(%d{HH:mm:ss.SSS}) %gray([%thread]) %highlight(%-5level) %magenta(%logger{36}) - %msg%n
+ </pattern>
+ </encoder>
+ </appender>
+
+ <root level="info">
+ <appender-ref ref="STDOUT"/>
+ </root>
+</configuration>