Simple session structure

This commit is contained in:
2026-02-19 15:39:52 +01:00
parent 1b9b59f20b
commit 141d7d0890
2 changed files with 44 additions and 2 deletions
+33 -1
View File
@@ -1,5 +1,37 @@
package dev.selimaj.session; package dev.selimaj.session;
import java.util.concurrent.*;
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.WebSocket;
public final class Session { public final class Session {
private Session() {}
private final WebSocket ws;
private final ExecutorService executor;
private final SessionListener listener;
public Session(WebSocket ws, SessionListener listener, ExecutorService executor) {
this.ws = ws;
this.executor = executor;
this.listener = listener;
}
public static Session connect(String uri) throws Exception {
SessionListener listener = new SessionListener();
WebSocket ws = HttpClient.newHttpClient()
.newWebSocketBuilder()
.buildAsync(URI.create("ws://example.com/echo"), listener)
.join();
return new Session(ws, listener, Executors.newCachedThreadPool());
}
public void startReceiver() {
executor.execute(() -> {
});
}
} }
@@ -0,0 +1,10 @@
package dev.selimaj.session;
import java.net.http.WebSocket;
import java.util.concurrent.ConcurrentHashMap;
import dev.selimaj.session.types.MethodHandler;
public class SessionListener implements WebSocket.Listener {
public final ConcurrentHashMap<String, MethodHandler> methods = new ConcurrentHashMap<>();
}