const colyseus = require("colyseus"); const http = require("http"); const express = require("express"); // optional // Initialize the Express app (optional) const app = express(); // Create HTTP & WebSocket servers const server = http.createServer(app); const gameServer = new colyseus.Server({ server: server, }); // Define a room handler class MyRoom extends colyseus.Room { onCreate(options) { console.log("Room created!", options); } onJoin(client, options) { console.log(client.sessionId, "joined!"); } onLeave(client, consented) { console.log(client.sessionId, "left!"); } onMessage(client, message) { console.log(client.sessionId, "sent message", message); this.broadcast("messages", message); } onDispose() { console.log("Room disposed!"); } } // Register the room handler gameServer.define("my_room", MyRoom); // Serve static files (optional) app.use(express.static("public")); // Start the server const port = process.env.PORT || 7860; server.listen(port, () => { console.log(`Listening on ws://localhost:${port}`); });