25 lines
705 B
JavaScript
25 lines
705 B
JavaScript
const express = require("express")
|
|
const app = express()
|
|
const server = require("http").Server(app)
|
|
const io = require("socket.io")(server)
|
|
const { v4: uuidV4 } = require("uuid")
|
|
|
|
app.set("view engine", "ejs")
|
|
app.use(express.static("public"))
|
|
|
|
app.get("/", (_, res) => res.redirect(`/${uuidV4()}`))
|
|
|
|
app.get("/:room", (req, res) => res.render("room", { roomId: req.params.room }))
|
|
|
|
io.on("connection", (socket) =>
|
|
socket.on("join-room", (roomId, userId) => {
|
|
socket.join(roomId)
|
|
socket.to(roomId).emit("user-connected", userId)
|
|
|
|
socket.on("disconnect", () => {
|
|
socket.to(roomId).broadcast.emit("user-disconnected", userId)
|
|
})
|
|
})
|
|
)
|
|
|
|
server.listen(3000)
|