This commit is contained in:
Manik Maity
2024-11-13 20:57:49 +05:30
parent 0fec8b9467
commit 6101ec0821

View File

@@ -4,31 +4,43 @@ export const handlePollSocket = (io) => {
io.on("connection", (socket) => {
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);
console.log(`User ${socket.id} joined poll room: ${pollId}`);
});
};
socket.on("disconnect", () => {
console.log(`User disconnected: ${socket.id}`);
});
// Handle user voting in a poll
const handleVote = async (data) => {
if (!data.pollId || !data.success) {
socket.emit("error", { message: "Invalid vote data" });
return;
}
socket.on("vote", async (data) => {
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" });
}
});
};
// 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);
});
};