feature: added viewing support for multiple players, added custom context menu setup

This commit is contained in:
Muhammad Sabeeh 2025-06-20 17:24:03 -04:00
parent d18b4d93cc
commit ec631f3c2a
6 changed files with 1372 additions and 20 deletions

33
ws_server/.gitignore vendored Normal file
View file

@ -0,0 +1,33 @@
.DS_Store
.thumbs.db
node_modules
# Quasar core related directories
.quasar
/dist
/quasar.config.*.temporary.compiled*
# Cordova related directories and files
/src-cordova/node_modules
/src-cordova/platforms
/src-cordova/plugins
/src-cordova/www
# Capacitor related directories and files
/src-capacitor/www
/src-capacitor/node_modules
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
# local .env files
.env.local*

42
ws_server/app.js Normal file
View file

@ -0,0 +1,42 @@
import express from "express";
import { createServer } from "node:http";
import { Server } from "socket.io";
const app = express();
const server = createServer(app);
const io = new Server(server, {
cors: {
origin: "http://localhost:9000",
},
});
app.get("/", (req, res) => {
res.send("<h1>Hello world</h1>");
});
io.on("connection", (socket) => {
console.log("a user connected");
socket.on("disconnect", () => {
console.log("user disconnected");
});
socket.on("join", (username, room) => {
socket.join(room);
// socket.to(room).emit("updateCards")
console.log(`${username} joined room: ${room}`);
});
socket.on("sync-cards", ({ room, username, cards }) => {
console.log(`syncing cards for room: ${room}`);
console.log("the cards: ", username, cards);
io.to(room).emit("updateCards", {
player: {
username: username,
cards: cards,
},
});
console.log(`sent updated cards for room: ${room}`);
});
});
server.listen(3000, () => {
console.log("server running at http://localhost:3000");
});

1128
ws_server/package-lock.json generated Normal file

File diff suppressed because it is too large Load diff

6
ws_server/package.json Normal file
View file

@ -0,0 +1,6 @@
{
"dependencies": {
"express": "^5.1.0",
"socket.io": "^4.8.1"
}
}