MCPcopy Create free account
hub / github.com/clientdb/clientdb / createRealTimeManager

Function createRealTimeManager

engine/server/realtime.ts:3–31  ·  view source on GitHub ↗
(server: SocketServer)

Source from the content-addressed store, hash-verified

1import { Server as SocketServer, Socket } from "socket.io";
2
3export function createRealTimeManager(server: SocketServer) {
4 const connections = new Map<string, Socket>();
5
6 server.on("connection", (socket) => {
7 const userId = socket.handshake.query.userId as string;
8 const lastSyncId = socket.handshake.query.lastSyncId;
9
10 if (!userId) {
11 socket.disconnect(true);
12 return;
13 }
14
15 connections.set(userId, socket);
16
17 socket.on("disconnect", () => {
18 connections.delete(userId);
19 });
20 });
21
22 function requestEveryoneToSync() {
23 for (const socket of connections.values()) {
24 socket.emit("sync trigger");
25 }
26 }
27
28 return {
29 requestEveryoneToSync,
30 };
31}

Callers 1

createSyncServerFunction · 0.90

Calls

no outgoing calls

Tested by

no test coverage detected