feat: starting point for live sync

This commit is contained in:
2025-07-08 14:36:34 +02:00
parent 05ad4128e4
commit da90cfa891
3 changed files with 856 additions and 26 deletions

84
server.js Normal file
View File

@ -0,0 +1,84 @@
import express from 'express';
import http from 'http';
import { Server } from 'socket.io';
import { handler } from './build/handler.js';
const app = express();
const server = http.createServer(app);
const io = new Server(server);
io.on('connection', (socket) => {
console.log('a user connected');
socket.on('join', (room) => {
socket.join(room);
console.log(`User joined room: ${room}`);
});
socket.on('request-state', (data) => {
socket.to(data.room).emit('request-state', { from: socket.id });
});
socket.on('sync-state', (data) => {
socket.to(data.to).emit('sync-state', data);
});
socket.on('card-move', (data) => {
socket.to(data.room).emit('card-move', data);
});
socket.on('card-click', (data) => {
socket.to(data.room).emit('card-click', data);
});
socket.on('card-drop', (data) => {
socket.to(data.room).emit('card-drop', data);
});
socket.on('sticky-note-add', (data) => {
socket.to(data.room).emit('sticky-note-add', data);
});
socket.on('sticky-note-move', (data) => {
socket.to(data.room).emit('sticky-note-move', data);
});
socket.on('sticky-note-update', (data) => {
socket.to(data.room).emit('sticky-note-update', data);
});
socket.on('sticky-note-delete', (data) => {
socket.to(data.room).emit('sticky-note-delete', data);
});
socket.on('deck-change', (data) => {
socket.to(data.room).emit('deck-change', data);
});
socket.on('shuffle-deck', (data) => {
socket.to(data.room).emit('shuffle-deck', data);
});
socket.on('collect-to-deck', (data) => {
socket.to(data.room).emit('collect-to-deck', data);
});
socket.on('deal-cards', (data) => {
socket.to(data.room).emit('deal-cards', data);
});
socket.on('flip-all-cards', (data) => {
socket.to(data.room).emit('flip-all-cards', data);
});
socket.on('disconnect', () => {
console.log('user disconnected');
});
});
app.use(handler);
server.listen(3000, () => {
console.log('listening on *:3000');
});