MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / Server

Class Server

src/main/java/fielded/webserver/Server.java:23–362  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

21import java.net.InetSocketAddress;
22import java.net.SocketException;
23import java.security.KeyStore;
24import java.util.*;
25import java.util.concurrent.*;
26import java.util.function.Predicate;
27import java.util.function.Supplier;
28
29public class Server {
30
31 public static final String FIELD_FILESYSTEM = "/field/";
32 Map<String, String> fixedResources = new HashMap<String, String>();
33 Set<String> documentRoots = new LinkedHashSet<String>();
34
35 public final NanoHTTPD server;
36 public final WebSocketServer webSocketServer;
37
38 Deque<Handler> handlers = new LinkedList<>();
39 List<URIHandler> uriHandlers = new ArrayList<>();
40
41 BiMap<String, WebSocket> knownSockets = HashBiMap.create();
42 public final int port;
43 public final int websocketPort;
44
45
46 public interface Handler {
47 // handle gets called in the main thread
48 Object handle(Server server, WebSocket from, String address, Object payload);
49 }
50
51 public interface HandlerInMainThread extends Handler {
52 default boolean will(Server server, WebSocket from, String address, Object payload) {
53 return true;
54 }
55 }
56
57 public interface URIHandler {
58 NanoHTTPD.Response serve(String uri, NanoHTTPD.Method method, Map<String, String> headers, Map<String, String> parms, Map<String, String> files);
59 }
60
61 long uniq = 0;
62
63 static public ThreadLocal<WebSocket> currentWebSocket = new ThreadLocal();
64
65
66 public int getWebsocketPort() {
67 return websocketPort;
68 }
69
70 public int getPort() {
71 return port;
72 }
73
74
75 public Server(int port, int websocketPort) throws IOException {
76 this.port = port;
77 this.websocketPort = websocketPort;
78 server = new NanoHTTPD(port) {
79 @Override
80 Response serve(String uri, Method method, Map<String, String> headers, Map<String, String> parms, Map<String, String> files) {

Callers 4

RemoteWebSocketClass · 0.85
LittleServerClass · 0.85
HTMLToTextureClass · 0.85
SpatializationClass · 0.85

Calls 1

createMethod · 0.45

Tested by

no test coverage detected