const express = require('express'); const app = express(); const http = require('http'); const cors = require("cors"); const server = http.createServer(app); const { Server } = require("socket.io"); const io = new Server(server, { cors: { origin: true, } }); app.use(cors()); app.get('/', (req, res) => { res.sendFile(__dirname + '/index.html'); }); app.get("/cursor.svg", (req, res) => { res.sendFile(__dirname + "/cursor.svg"); }); let paths = {}; io.on('connection', (socket) => { console.log('a user connected'); let userid = socket.id; // take stream of movement packet, append as necessary socket.on('movement', (data) => { if (paths[userid] === undefined) { paths[userid] = data; } else { paths[userid] = paths[userid].concat(data); } console.log(paths); }); // send old paths to new user setInterval(() => { socket.emit('pathsync', paths); }, 1000); }); server.listen(3000, () => { console.log('listening on *:3000'); });