const { createServer } = require("http") const { parse } = require("url") const next = require("next") const { initWebSocketServer } = require("./lib/websocket") const dev = process.env.NODE_ENV !== "production" const hostname = "localhost" const port = process.env.PORT || 3000 const app = next({ dev, hostname, port }) const handle = app.getRequestHandler() app.prepare().then(() => { const server = createServer(async (req, res) => { try { const parsedUrl = parse(req.url, true) await handle(req, res, parsedUrl) } catch (err) { console.error("Error occurred handling", req.url, err) res.statusCode = 500 res.end("internal server error") } }) // Initialize WebSocket server initWebSocketServer(server) server.listen(port, (err) => { if (err) throw err console.log(`> Ready on http://${hostname}:${port}`) console.log("> WebSocket server initialized") }) })