krishgokul92 commited on
Commit
1ec267e
·
verified ·
1 Parent(s): 7cee9d6

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +17 -3
server.js CHANGED
@@ -22,6 +22,9 @@ let running = false;
22
  let startNs = 0n;
23
  let accumulatedNs = 0n;
24
 
 
 
 
25
  const nowNs = () => process.hrtime.bigint();
26
  const nsToMillis = (ns) => Number(ns) / 1e6;
27
 
@@ -34,7 +37,8 @@ function broadcastState() {
34
  const payload = {
35
  running,
36
  elapsedMs: nsToMillis(currentElapsedNs()),
37
- serverSentAtMs: Date.now()
 
38
  };
39
  io.emit("state", payload);
40
  }
@@ -78,10 +82,11 @@ io.on("connection", (socket) => {
78
  socket.emit("state", {
79
  running,
80
  elapsedMs: nsToMillis(currentElapsedNs()),
81
- serverSentAtMs: Date.now()
 
82
  });
83
 
84
- // --- Admin joins a room to receive client lists
85
  socket.on("admin:join", () => {
86
  socket.join("admins");
87
  broadcastClients();
@@ -137,6 +142,15 @@ io.on("connection", (socket) => {
137
  broadcastState();
138
  });
139
 
 
 
 
 
 
 
 
 
 
140
  socket.on("disconnect", () => {
141
  stopLatencyProbe(socket);
142
  clients.delete(socket.id);
 
22
  let startNs = 0n;
23
  let accumulatedNs = 0n;
24
 
25
+ // NEW: shared color for all clients (default matches your theme)
26
+ let color = "#E8EEF8"; // hex only
27
+
28
  const nowNs = () => process.hrtime.bigint();
29
  const nsToMillis = (ns) => Number(ns) / 1e6;
30
 
 
37
  const payload = {
38
  running,
39
  elapsedMs: nsToMillis(currentElapsedNs()),
40
+ serverSentAtMs: Date.now(),
41
+ color, // <-- include color in every state
42
  };
43
  io.emit("state", payload);
44
  }
 
82
  socket.emit("state", {
83
  running,
84
  elapsedMs: nsToMillis(currentElapsedNs()),
85
+ serverSentAtMs: Date.now(),
86
+ color,
87
  });
88
 
89
+ // --- Admin joins a room to receive client list updates
90
  socket.on("admin:join", () => {
91
  socket.join("admins");
92
  broadcastClients();
 
142
  broadcastState();
143
  });
144
 
145
+ // NEW: Admin sets color (hex only)
146
+ socket.on("cmd:color", (hex) => {
147
+ if (typeof hex !== "string") return;
148
+ const ok = /^#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})$/.test(hex.trim());
149
+ if (!ok) return;
150
+ color = hex.trim();
151
+ broadcastState(); // push new color to everyone
152
+ });
153
+
154
  socket.on("disconnect", () => {
155
  stopLatencyProbe(socket);
156
  clients.delete(socket.id);