feat: starting point for live sync
This commit is contained in:
@ -7,6 +7,7 @@
|
|||||||
"dev": "vite dev",
|
"dev": "vite dev",
|
||||||
"build": "vite build",
|
"build": "vite build",
|
||||||
"preview": "vite preview",
|
"preview": "vite preview",
|
||||||
|
"start": "node server.js",
|
||||||
"prepare": "svelte-kit sync || echo ''",
|
"prepare": "svelte-kit sync || echo ''",
|
||||||
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
"check": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json",
|
||||||
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
"check:watch": "svelte-kit sync && svelte-check --tsconfig ./tsconfig.json --watch",
|
||||||
@ -38,6 +39,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@sveltejs/adapter-node": "^5.2.12",
|
"@sveltejs/adapter-node": "^5.2.12",
|
||||||
"@sveltejs/adapter-static": "^3.0.8"
|
"@sveltejs/adapter-static": "^3.0.8",
|
||||||
|
"express": "^5.1.0",
|
||||||
|
"socket.io": "^4.8.1",
|
||||||
|
"socket.io-client": "^4.8.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
792
pnpm-lock.yaml
generated
792
pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
84
server.js
Normal file
84
server.js
Normal 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');
|
||||||
|
});
|
Reference in New Issue
Block a user