FIX
This commit is contained in:
@@ -4,31 +4,43 @@ export const handlePollSocket = (io) => {
|
|||||||
io.on("connection", (socket) => {
|
io.on("connection", (socket) => {
|
||||||
console.log(`User connected: ${socket.id}`);
|
console.log(`User connected: ${socket.id}`);
|
||||||
|
|
||||||
socket.on("joinPoll", (pollId) => {
|
// Handle user joining a poll room
|
||||||
|
const handleJoinPoll = (pollId) => {
|
||||||
|
if (!pollId) {
|
||||||
|
socket.emit("error", { message: "Poll ID is required to join a poll room" });
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
socket.join(pollId);
|
socket.join(pollId);
|
||||||
console.log(`User ${socket.id} joined poll room: ${pollId}`);
|
console.log(`User ${socket.id} joined poll room: ${pollId}`);
|
||||||
});
|
};
|
||||||
|
|
||||||
socket.on("disconnect", () => {
|
// Handle user voting in a poll
|
||||||
console.log(`User disconnected: ${socket.id}`);
|
const handleVote = async (data) => {
|
||||||
});
|
if (!data.pollId || !data.success) {
|
||||||
|
socket.emit("error", { message: "Invalid vote data" });
|
||||||
socket.on("vote", async (data) => {
|
return;
|
||||||
if (data.success) {
|
|
||||||
console.log("Vote received:", data);
|
|
||||||
|
|
||||||
try {
|
|
||||||
const pollData = await getPollDataService(data.pollId);
|
|
||||||
|
|
||||||
io.to(data.pollId).emit("pollDataUpdated", { data: pollData });
|
|
||||||
} catch (error) {
|
|
||||||
console.error("Error fetching poll data:", error);
|
|
||||||
socket.emit("error", { message: "Failed to fetch poll data" });
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
console.log("Vote failed:", data);
|
|
||||||
socket.emit("error", { message: "Vote was unsuccessful" });
|
|
||||||
}
|
}
|
||||||
});
|
|
||||||
|
console.log("Vote received:", data);
|
||||||
|
|
||||||
|
try {
|
||||||
|
const pollData = await getPollDataService(data.pollId);
|
||||||
|
io.to(data.pollId).emit("pollDataUpdated", { data: pollData });
|
||||||
|
} catch (error) {
|
||||||
|
console.error("Error fetching poll data:", error);
|
||||||
|
socket.emit("error", { message: "Failed to fetch poll data" });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
// Handle user disconnection
|
||||||
|
const handleDisconnect = () => {
|
||||||
|
console.log(`User disconnected: ${socket.id}`);
|
||||||
|
};
|
||||||
|
|
||||||
|
// Event listeners
|
||||||
|
socket.on("joinPoll", handleJoinPoll);
|
||||||
|
socket.on("vote", handleVote);
|
||||||
|
socket.on("disconnect", handleDisconnect);
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|||||||
Reference in New Issue
Block a user