Fixed too short idle timeout for Jetty's WebSocket

This commit is contained in:
2024-11-24 01:35:36 +02:00
parent 32272c5295
commit 5539304ff7
5 changed files with 25 additions and 6 deletions

View File

@@ -38,6 +38,17 @@
<artifactId>slf4j-simple</artifactId>
<version>2.0.16</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.4.12</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.4.14</version>
</dependency>
</dependencies>
<build>

View File

@@ -3,16 +3,17 @@ package io.github.lumijiez;
import io.javalin.Javalin;
import io.javalin.websocket.WsContext;
import java.nio.ByteBuffer;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
public class JavalinConfig {
private static final Map<String, WsContext> users = new ConcurrentHashMap<>();
private static final ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();
public static void setup(Javalin app) {
app.get("/check", ctx -> ctx.result("OK"));
app.ws("/discovery", ws -> {
public static void setup(Javalin app) { app.ws("/discovery", ws -> {
ws.onConnect(ctx -> {
String id = ctx.sessionId();
users.put(id, ctx);

View File

@@ -3,9 +3,16 @@ package io.github.lumijiez;
import io.javalin.Javalin;
import io.javalin.json.JavalinGson;
import java.time.Duration;
public class Main {
public static void main(String[] args) {
Javalin app = Javalin.create(config -> config.jsonMapper(new JavalinGson())).start(8083);
Javalin app = Javalin.create(config -> {
config.jsonMapper(new JavalinGson());
config.jetty.modifyWebSocketServletFactory(wsFactoryConfig -> {
wsFactoryConfig.setIdleTimeout(Duration.ZERO);
});
}).start(8083);
JavalinConfig.setup(app);