package Handlers.Web; import io.javalin.Javalin; import io.javalin.websocket.WsContext; import java.util.ArrayList; import java.util.List; import org.json.JSONObject; public class Server { private static List users = new ArrayList(); public static void main(int port) { 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"); }); 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); } } } }