2019-09-15 15:03:44 -04:00
|
|
|
package com.chameleonvision.web;
|
2019-09-10 23:47:06 +03:00
|
|
|
|
2019-11-23 11:55:20 -05:00
|
|
|
import com.chameleonvision.config.ConfigManager;
|
2019-09-10 23:47:06 +03:00
|
|
|
import io.javalin.Javalin;
|
2019-09-15 01:55:29 +03:00
|
|
|
|
2019-09-10 23:47:06 +03:00
|
|
|
public class Server {
|
2019-11-09 19:52:33 +02:00
|
|
|
private static SocketHandler socketHandler;
|
2019-09-16 04:10:26 +03:00
|
|
|
|
2019-09-10 23:47:06 +03:00
|
|
|
public static void main(int port) {
|
2019-11-09 19:52:33 +02:00
|
|
|
socketHandler = new SocketHandler();
|
2019-09-21 16:04:58 +03:00
|
|
|
|
2019-11-09 19:52:33 +02:00
|
|
|
Javalin app = Javalin.create(javalinConfig -> {
|
|
|
|
|
javalinConfig.showJavalinBanner = false;
|
|
|
|
|
javalinConfig.addStaticFiles("web");
|
|
|
|
|
javalinConfig.enableCorsForAllOrigins();
|
|
|
|
|
});
|
2019-09-16 04:10:26 +03:00
|
|
|
app.ws("/websocket", ws -> {
|
2019-09-11 20:28:56 +03:00
|
|
|
ws.onConnect(ctx -> {
|
2019-11-09 19:52:33 +02:00
|
|
|
socketHandler.onConnect(ctx);
|
2019-09-11 20:28:56 +03:00
|
|
|
System.out.println("Socket Connected");
|
|
|
|
|
});
|
|
|
|
|
ws.onClose(ctx -> {
|
2019-11-09 19:52:33 +02:00
|
|
|
socketHandler.onClose(ctx);
|
2019-09-11 20:28:56 +03:00
|
|
|
System.out.println("Socket Disconnected");
|
2019-11-26 23:03:07 -05:00
|
|
|
ConfigManager.saveGeneralSettings();
|
2019-09-11 20:28:56 +03:00
|
|
|
});
|
2019-10-12 03:38:42 +03:00
|
|
|
ws.onBinaryMessage(ctx -> {
|
2019-11-09 19:52:33 +02:00
|
|
|
socketHandler.onBinaryMessage(ctx);
|
2019-09-11 20:28:56 +03:00
|
|
|
});
|
|
|
|
|
});
|
2019-11-27 18:09:27 -05:00
|
|
|
app.post("/api/settings/general", RequestHandler::onGeneralSettings);
|
|
|
|
|
app.post("/api/settings/camera", RequestHandler::onCameraSettings);
|
2019-10-20 10:13:07 +03:00
|
|
|
app.start(port);
|
2019-09-11 20:28:56 +03:00
|
|
|
}
|
2019-11-27 17:40:24 -05:00
|
|
|
}
|