Simple session structure
This commit is contained in:
@@ -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<>();
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user