First commit
This commit is contained in:
commit
48866cc6ab
20 changed files with 6301 additions and 0 deletions
62
server.mjs
Normal file
62
server.mjs
Normal file
|
@ -0,0 +1,62 @@
|
|||
import { createServer } from "node:http";
|
||||
import next from "next";
|
||||
import { Server } from "socket.io";
|
||||
|
||||
const dev = process.env.NODE_ENV !== "production";
|
||||
const hostname = "localhost";
|
||||
const port = 3000;
|
||||
// when using middleware `hostname` and `port` must be provided below
|
||||
const app = next({ dev, hostname, port });
|
||||
const handler = app.getRequestHandler();
|
||||
|
||||
let active_rooms = {}
|
||||
|
||||
app.prepare().then(() => {
|
||||
const httpServer = createServer(handler);
|
||||
|
||||
const io = new Server(httpServer);
|
||||
|
||||
io.on("connection", (socket) => {
|
||||
console.log("User connected " + socket.id)
|
||||
socket.on('room_connect', (room) => {
|
||||
if(!Object.keys(active_rooms).includes(room.id)){
|
||||
console.log("First person joined " + room.id + " ! " + room.name + " is owner.")
|
||||
active_rooms[room.id] = [{id: socket.id, name: room.name, role: "owner", vote: ""}]
|
||||
socket.emit("room_joined", {"room_users": active_rooms[room.id], "role": "owner"})
|
||||
} else {
|
||||
socket.to(room.id).emit("new_player",{"id": socket.id, "name": room.name, role: "player"})
|
||||
active_rooms[room.id].push({id: socket.id, name: room.name, role: "player", vote: ""})
|
||||
socket.emit("room_joined", {"room_users": active_rooms[room.id], role: "player"})
|
||||
console.log("New person joined " + room.id + " ! " + room.name + " is player.")
|
||||
}
|
||||
socket.join(room.id)
|
||||
})
|
||||
|
||||
socket.on("start_game", (params) => {
|
||||
socket.to(params.roomId).emit("start_game",{possibleChoice: params.possibleChoice, question: params.question, duration: params.duration})
|
||||
})
|
||||
|
||||
socket.on("reset_game", (params) => {
|
||||
socket.to(params.roomId).emit("reset_game")
|
||||
})
|
||||
|
||||
socket.on("next_question", (params) => {
|
||||
socket.to(params.roomId).emit("next_question",{possibleChoice: params.possibleChoice, question: params.question, duration: params.duration})
|
||||
})
|
||||
|
||||
socket.on("player_choice", (params) => {
|
||||
console.log(params)
|
||||
socket.to(params.roomId).emit("player_choice", {choice: params.choice, player: params.player})
|
||||
})
|
||||
// ...
|
||||
});
|
||||
|
||||
httpServer
|
||||
.once("error", (err) => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
})
|
||||
.listen(port, () => {
|
||||
console.log(`> Ready on http://${hostname}:${port}`);
|
||||
});
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue