123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package at.acdp.urweb.web;
- import java.nio.file.Paths;
- import at.acdp.urweb.ScReadThread;
- import io.undertow.Handlers;
- import io.undertow.Undertow;
- import io.undertow.server.HttpHandler;
- import io.undertow.server.HttpServerExchange;
- import io.undertow.server.handlers.resource.PathResourceManager;
- import org.slf4j.LoggerFactory;
- import static io.undertow.Handlers.resource;
- public class WebServer {
- private final static org.slf4j.Logger logger = LoggerFactory.getLogger(WebServer.class);
- private final int port;
- private final ScReadThread sc;
- private Undertow server;
- public WebServer(int port, boolean debug, ScReadThread sc) {
- this.sc = sc;
- this.port = port;
- }
- public void start() {
- Undertow.Builder builder = Undertow.builder();
- builder.addHttpListener(port, "0.0.0.0");
- builder.setHandler(Handlers.routing()
- .post("/cmd", new HttpHandler() {
- @Override
- public void handleRequest(HttpServerExchange ex) throws Exception {
- if (ex.isInIoThread()) {
- ex.dispatch(this);
- return;
- }
- ex.startBlocking();
- byte[] bytes = ex.getInputStream().readAllBytes();
- sc.writeCmd(new String(bytes));
- }
- })
- .get("/test/{id}", ex -> {
- System.out.println(ex.getQueryParameters().get("id").getFirst());
- })
- .get("/*", resource(new PathResourceManager(Paths.get("webroot"), 100))
- .setDirectoryListingEnabled(true))
- );
- server = builder.build();
- server.start();
- }
- }
|