Files
PhotonVision/Main/src/main/java/Handlers/Web/Server.java

41 lines
1.1 KiB
Java
Raw Normal View History

package Handlers.Web;
import Classes.SettingsManager;
import io.javalin.Javalin;
2019-09-11 20:28:56 +03:00
import io.javalin.websocket.WsContext;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONObject;
public class Server {
2019-09-11 20:28:56 +03:00
private static List<WsContext> users = new ArrayList<WsContext>();
public static void main(int port) {
2019-09-11 20:28:56 +03:00
Javalin app = Javalin.create();
app.config.addStaticFiles("web");
app.ws("/websocket", ws ->{
ws.onConnect(ctx -> {
users.add(ctx);
System.out.println("Socket Connected");
});
ws.onClose(ctx -> {
users.remove(ctx);
System.out.println("Socket Disconnected");
SettingsManager.getInstance().SaveSettings();
2019-09-11 20:28:56 +03:00
});
ws.onMessage(ctx -> {
broadcastMessage(ctx, ctx.message());
});
});
app.start(port);
}
private static void broadcastMessage(WsContext sendingUser, String message){
for (var user : users)
{
if (user != sendingUser){
user.send(message);
}
}
}
2019-09-11 20:28:56 +03:00
}