From 98541592268809115a993f9b07ee584226ffda09 Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Tue, 20 Aug 2024 22:52:42 -0400 Subject: [PATCH 1/2] fix: emit on reset --- app/components/socket-provider.tsx | 7 ++----- app/server.ts | 6 ++++-- app/types/index.ts | 4 ++-- 3 files changed, 8 insertions(+), 9 deletions(-) diff --git a/app/components/socket-provider.tsx b/app/components/socket-provider.tsx index 5a02f9a..a14cdf6 100644 --- a/app/components/socket-provider.tsx +++ b/app/components/socket-provider.tsx @@ -34,15 +34,12 @@ export function SocketProvider({ children }: React.PropsWithChildren) { } }); - socket.on("sessionAlive", (sessionId) => { + socket.on("session", (sessionId) => { socket.auth = { sessionId }; localStorage.setItem("sessionId", sessionId); - setSessionState("alive"); }); - socket.on("sessionDead", () => { - setSessionState("dead"); - }); + socket.on("sessionState", setSessionState); }, []); return ( diff --git a/app/server.ts b/app/server.ts index 7499314..1507732 100644 --- a/app/server.ts +++ b/app/server.ts @@ -34,7 +34,8 @@ async function main() { io.on("connection", async (socket) => { await redis.setSession(socket.data.sessionId, "alive"); - socket.emit("sessionAlive", socket.data.sessionId); + socket.emit("session", socket.data.sessionId); + socket.emit("sessionState", "alive"); clientsCount++; io.emit("clientsCount", clientsCount); @@ -44,10 +45,11 @@ async function main() { socket.on("expose", async (index) => { if (field.exposeCell(index) === "dead") { await redis.setSession(socket.data.sessionId, "dead"); - socket.emit("sessionDead"); + socket.emit("sessionState", "dead"); } else if (field.isComplete) { field = await Field.create(field.size + 10); await redis.resetSessions(); + io.emit("sessionState", "alive"); } io.emit("exposedPercent", field.exposedPercent); io.emit("update", field.plots); diff --git a/app/types/index.ts b/app/types/index.ts index 310c904..cab787c 100644 --- a/app/types/index.ts +++ b/app/types/index.ts @@ -13,8 +13,8 @@ export type ServerToClientEvents = { update(state: Field["plots"]): void; clientsCount(count: number): void; exposedPercent(count: number): void; - sessionAlive(sessionId: string): void; - sessionDead(): void; + session(sessionId: string): void; + sessionState(state: SessionState): void; }; type InterServerEvents = {}; From d14caf461b72b18db12a22a2df2ddcc2ef0347c4 Mon Sep 17 00:00:00 2001 From: "J. Lewis" <6710419+lewxdev@users.noreply.github.com> Date: Tue, 20 Aug 2024 23:02:25 -0400 Subject: [PATCH 2/2] fix: um, actually... --- app/server.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/app/server.ts b/app/server.ts index 1507732..8fbc02f 100644 --- a/app/server.ts +++ b/app/server.ts @@ -33,6 +33,12 @@ async function main() { }); io.on("connection", async (socket) => { + if (field.isComplete) { + field = await Field.create(field.size + 10); + await redis.resetSessions(); + io.emit("sessionState", "alive"); + } + await redis.setSession(socket.data.sessionId, "alive"); socket.emit("session", socket.data.sessionId); socket.emit("sessionState", "alive");