meow
This commit is contained in:
commit
ca1cb77993
12 changed files with 479 additions and 0 deletions
47
src/main/java/dev/exhq/Main.java
Normal file
47
src/main/java/dev/exhq/Main.java
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
package dev.exhq;
|
||||
|
||||
import io.javalin.Javalin;
|
||||
import io.javalin.websocket.WsContext;
|
||||
|
||||
import java.time.Duration;
|
||||
import java.util.Objects;
|
||||
import java.util.concurrent.atomic.AtomicReference;
|
||||
|
||||
public class Main {
|
||||
public static void main(String[] args) {
|
||||
var pass = System.getenv("password");
|
||||
if (pass == null) {
|
||||
System.err.println("no password env var was passed");
|
||||
System.exit(1);
|
||||
}
|
||||
|
||||
AtomicReference<WsContext> client = new AtomicReference<>();
|
||||
Javalin app = Javalin.create();
|
||||
app.post("/send", ctx -> {
|
||||
if (client.get() == null){
|
||||
ctx.status(400).result("echo was not found");
|
||||
return;
|
||||
}
|
||||
client.get().send(ctx.body());
|
||||
ctx.result("sent");
|
||||
});
|
||||
|
||||
app.ws("/ws", ws -> {
|
||||
ws.onConnect(wsConnectContext -> {
|
||||
wsConnectContext.session.setIdleTimeout(Duration.ofDays(-1));
|
||||
if ((wsConnectContext.queryParam("meow") == null) || !Objects.equals(wsConnectContext.queryParam("meow"), pass)){
|
||||
wsConnectContext.send("who tf are you");
|
||||
wsConnectContext.closeSession();
|
||||
return;
|
||||
}
|
||||
client.set(wsConnectContext);
|
||||
wsConnectContext.send("connected");
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
app.start(7000);
|
||||
System.out.println("Server started on http://localhost:7000");
|
||||
}
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue