"use strict" const WebSocket = require("ws"); const http = require("http"); const fs = require("fs"); const Router = require("./lib/router"); const Static = require("./lib/static"); if (!fs.existsSync("./logs")) fs.mkdirSync("./logs"); Math.clamp = Math.clamp || ((x,l,h) => Math.max(l,Math.min(x,h))); const PORT = Math.clamp(+process.env.PORT||8080, 1, 65535); const HOST = "0.0.0.0"; const server = http.createServer(); const wss = new WebSocket.Server({server}); const stat = new Static("./public"); const app = new Router(); function sj(res, data) { // For convenience res.setHeader("Content-Type", "application/json"); res.end(JSON.stringify(data)); } app.get("/hist.json", (req, res) => sj(res, [])); //app.get("/(?[0-9A-Z]+)", (req, res, path) => { // res.setHeader("Content-Type", "text/plain"); // res.end(path[id]); //}); //app.gpost("/(?[0-9A-Z]+)/file", (req, res, path, data) => { // res.end(data); //}, 1<<28); // 256MB Max //app.put("/file/(.+)", (req, res, path) => { // req.pipe(fs.createWriteStream("./static/"+path[1])); //}); wss.on("connection", ws => { ws.on("message", msg => console.log("msg", msg)); ws.send("hello"); }); server.on("request", (req, res) => { console.log(`${Date.now()} ${req.method} ${req.url}`); app.route(req, res) || stat.route(req, res); }); server.listen(PORT/*, HOST*/); console.log(`Running on http://${HOST}:${PORT}`);