@conference-kit/signaling-server 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +96 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +263 -0
- package/dist/index.js.map +1 -0
- package/package.json +1 -1
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
type Server<T> = {
|
|
2
|
+
upgrade(req: Request, options: {
|
|
3
|
+
data: T;
|
|
4
|
+
}): boolean;
|
|
5
|
+
};
|
|
6
|
+
type ServerWebSocket<T> = {
|
|
7
|
+
data: T;
|
|
8
|
+
subscribe(topic: string): void;
|
|
9
|
+
unsubscribe(topic: string): void;
|
|
10
|
+
publish(topic: string, data: string): void;
|
|
11
|
+
send(data: string): void;
|
|
12
|
+
close(code?: number): void;
|
|
13
|
+
};
|
|
14
|
+
declare const Bun: {
|
|
15
|
+
serve: <T>(options: {
|
|
16
|
+
hostname?: string;
|
|
17
|
+
port?: number;
|
|
18
|
+
fetch(req: Request, server: Server<T>): Response | void | undefined;
|
|
19
|
+
websocket: {
|
|
20
|
+
open(ws: ServerWebSocket<T>): void;
|
|
21
|
+
message(ws: ServerWebSocket<T>, message: string | ArrayBuffer | Uint8Array): void;
|
|
22
|
+
close(ws: ServerWebSocket<T>): void;
|
|
23
|
+
};
|
|
24
|
+
}) => {
|
|
25
|
+
port: number;
|
|
26
|
+
};
|
|
27
|
+
};
|
|
28
|
+
type ClientMeta = {
|
|
29
|
+
peerId: string;
|
|
30
|
+
room?: string | null;
|
|
31
|
+
isHost?: boolean;
|
|
32
|
+
waitingRoom?: boolean;
|
|
33
|
+
admitted?: boolean;
|
|
34
|
+
};
|
|
35
|
+
type SignalPayload = {
|
|
36
|
+
type: "signal";
|
|
37
|
+
to: string;
|
|
38
|
+
data: unknown;
|
|
39
|
+
};
|
|
40
|
+
type BroadcastPayload = {
|
|
41
|
+
type: "broadcast";
|
|
42
|
+
data: unknown;
|
|
43
|
+
};
|
|
44
|
+
type ControlPayload = {
|
|
45
|
+
type: "control";
|
|
46
|
+
action: string;
|
|
47
|
+
data?: unknown;
|
|
48
|
+
};
|
|
49
|
+
type IncomingMessage = SignalPayload | BroadcastPayload | ControlPayload;
|
|
50
|
+
type OutgoingMessage = {
|
|
51
|
+
type: "signal";
|
|
52
|
+
from: string;
|
|
53
|
+
data: unknown;
|
|
54
|
+
} | {
|
|
55
|
+
type: "broadcast";
|
|
56
|
+
from: string;
|
|
57
|
+
room?: string | null;
|
|
58
|
+
data: unknown;
|
|
59
|
+
} | PresenceMessage | {
|
|
60
|
+
type: "control";
|
|
61
|
+
from: string;
|
|
62
|
+
room?: string | null;
|
|
63
|
+
action: string;
|
|
64
|
+
data?: unknown;
|
|
65
|
+
} | {
|
|
66
|
+
type: "error";
|
|
67
|
+
message: string;
|
|
68
|
+
};
|
|
69
|
+
type PresenceMessage = {
|
|
70
|
+
type: "presence";
|
|
71
|
+
room?: string | null;
|
|
72
|
+
peerId: string;
|
|
73
|
+
peers: string[];
|
|
74
|
+
action: "join" | "leave";
|
|
75
|
+
};
|
|
76
|
+
declare function parseMessage(raw: string): IncomingMessage | null;
|
|
77
|
+
declare const HOST = "0.0.0.0";
|
|
78
|
+
declare const PORT = 8787;
|
|
79
|
+
declare const roomMembers: Map<string, Set<string>>;
|
|
80
|
+
declare const waitingRooms: Map<string, Set<string>>;
|
|
81
|
+
declare const clients: Map<string, ServerWebSocket<ClientMeta>>;
|
|
82
|
+
declare function getHosts(room?: string | null): ServerWebSocket<ClientMeta>[];
|
|
83
|
+
declare function sendControl(target: ServerWebSocket<ClientMeta>, payload: {
|
|
84
|
+
action: string;
|
|
85
|
+
data?: unknown;
|
|
86
|
+
room?: string | null;
|
|
87
|
+
from?: string;
|
|
88
|
+
}): void;
|
|
89
|
+
declare function broadcastToHosts(room: string | null | undefined, payload: {
|
|
90
|
+
action: string;
|
|
91
|
+
data?: unknown;
|
|
92
|
+
}): void;
|
|
93
|
+
declare const liveServer: {
|
|
94
|
+
port: number;
|
|
95
|
+
};
|
|
96
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
function parseMessage(raw) {
|
|
3
|
+
try {
|
|
4
|
+
const parsed = JSON.parse(raw);
|
|
5
|
+
if (parsed &&
|
|
6
|
+
(parsed.type === "signal" ||
|
|
7
|
+
parsed.type === "broadcast" ||
|
|
8
|
+
parsed.type === "control"))
|
|
9
|
+
return parsed;
|
|
10
|
+
return null;
|
|
11
|
+
}
|
|
12
|
+
catch (error) {
|
|
13
|
+
console.error("Failed to parse message", error);
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
const HOST = "0.0.0.0";
|
|
18
|
+
const PORT = 8787;
|
|
19
|
+
const roomMembers = new Map();
|
|
20
|
+
const waitingRooms = new Map();
|
|
21
|
+
const clients = new Map();
|
|
22
|
+
function getHosts(room) {
|
|
23
|
+
if (!room)
|
|
24
|
+
return [];
|
|
25
|
+
const hosts = [];
|
|
26
|
+
for (const ws of clients.values()) {
|
|
27
|
+
if (ws.data.room === room && ws.data.isHost)
|
|
28
|
+
hosts.push(ws);
|
|
29
|
+
}
|
|
30
|
+
return hosts;
|
|
31
|
+
}
|
|
32
|
+
function sendControl(target, payload) {
|
|
33
|
+
const message = {
|
|
34
|
+
type: "control",
|
|
35
|
+
from: payload.from ?? "server",
|
|
36
|
+
room: payload.room,
|
|
37
|
+
action: payload.action,
|
|
38
|
+
data: payload.data,
|
|
39
|
+
};
|
|
40
|
+
target.send(JSON.stringify(message));
|
|
41
|
+
}
|
|
42
|
+
function broadcastToHosts(room, payload) {
|
|
43
|
+
getHosts(room).forEach((hostWs) => sendControl(hostWs, { action: payload.action, data: payload.data, room }));
|
|
44
|
+
}
|
|
45
|
+
// Signaling server with simple room presence
|
|
46
|
+
const liveServer = Bun.serve({
|
|
47
|
+
hostname: HOST,
|
|
48
|
+
port: PORT,
|
|
49
|
+
fetch(req, bunServer) {
|
|
50
|
+
const url = new URL(req.url);
|
|
51
|
+
const peerId = url.searchParams.get("peerId");
|
|
52
|
+
const room = url.searchParams.get("room");
|
|
53
|
+
const isHost = url.searchParams.get("host") === "1";
|
|
54
|
+
const waitingRoom = url.searchParams.get("waitingRoom") === "1";
|
|
55
|
+
if (!peerId) {
|
|
56
|
+
return new Response("peerId query param is required", { status: 400 });
|
|
57
|
+
}
|
|
58
|
+
const upgraded = bunServer.upgrade(req, {
|
|
59
|
+
data: {
|
|
60
|
+
peerId,
|
|
61
|
+
room,
|
|
62
|
+
isHost,
|
|
63
|
+
waitingRoom,
|
|
64
|
+
admitted: isHost ? true : !waitingRoom,
|
|
65
|
+
},
|
|
66
|
+
});
|
|
67
|
+
if (!upgraded) {
|
|
68
|
+
return new Response("WebSocket upgrade failed", { status: 500 });
|
|
69
|
+
}
|
|
70
|
+
return undefined;
|
|
71
|
+
},
|
|
72
|
+
websocket: {
|
|
73
|
+
open(ws) {
|
|
74
|
+
const { peerId, room } = ws.data;
|
|
75
|
+
clients.set(peerId, ws);
|
|
76
|
+
ws.subscribe(`peer:${peerId}`);
|
|
77
|
+
if (room) {
|
|
78
|
+
if (ws.data.waitingRoom && !ws.data.isHost) {
|
|
79
|
+
const waiters = waitingRooms.get(room) ?? new Set();
|
|
80
|
+
waiters.add(peerId);
|
|
81
|
+
waitingRooms.set(room, waiters);
|
|
82
|
+
broadcastToHosts(room, {
|
|
83
|
+
action: "waiting-list",
|
|
84
|
+
data: { waiting: Array.from(waiters) },
|
|
85
|
+
});
|
|
86
|
+
sendControl(ws, {
|
|
87
|
+
action: "waiting",
|
|
88
|
+
room,
|
|
89
|
+
data: { position: waiters.size },
|
|
90
|
+
});
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
ws.data.admitted = true;
|
|
94
|
+
ws.subscribe(`room:${room}`);
|
|
95
|
+
const set = roomMembers.get(room) ?? new Set();
|
|
96
|
+
set.add(peerId);
|
|
97
|
+
roomMembers.set(room, set);
|
|
98
|
+
const presence = {
|
|
99
|
+
type: "presence",
|
|
100
|
+
room,
|
|
101
|
+
peerId,
|
|
102
|
+
peers: Array.from(set),
|
|
103
|
+
action: "join",
|
|
104
|
+
};
|
|
105
|
+
ws.publish(`room:${room}`, JSON.stringify(presence));
|
|
106
|
+
ws.send(JSON.stringify(presence));
|
|
107
|
+
// send waiting list snapshot to host
|
|
108
|
+
const pending = waitingRooms.get(room);
|
|
109
|
+
if (ws.data.isHost && pending && pending.size) {
|
|
110
|
+
sendControl(ws, {
|
|
111
|
+
action: "waiting-list",
|
|
112
|
+
room,
|
|
113
|
+
data: { waiting: Array.from(pending) },
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
},
|
|
118
|
+
message(ws, raw) {
|
|
119
|
+
const payload = typeof raw === "string" ? raw : raw.toString();
|
|
120
|
+
const parsed = parseMessage(payload);
|
|
121
|
+
if (!parsed) {
|
|
122
|
+
ws.send(JSON.stringify({
|
|
123
|
+
type: "error",
|
|
124
|
+
message: "Invalid message payload",
|
|
125
|
+
}));
|
|
126
|
+
return;
|
|
127
|
+
}
|
|
128
|
+
if (parsed.type === "signal") {
|
|
129
|
+
const outgoing = {
|
|
130
|
+
type: "signal",
|
|
131
|
+
from: ws.data.peerId,
|
|
132
|
+
data: parsed.data,
|
|
133
|
+
};
|
|
134
|
+
ws.publish(`peer:${parsed.to}`, JSON.stringify(outgoing));
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
if (parsed.type === "broadcast") {
|
|
138
|
+
const outgoing = {
|
|
139
|
+
type: "broadcast",
|
|
140
|
+
from: ws.data.peerId,
|
|
141
|
+
room: ws.data.room,
|
|
142
|
+
data: parsed.data,
|
|
143
|
+
};
|
|
144
|
+
if (ws.data.room) {
|
|
145
|
+
ws.publish(`room:${ws.data.room}`, JSON.stringify(outgoing));
|
|
146
|
+
}
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
if (parsed.type === "control") {
|
|
150
|
+
const room = ws.data.room;
|
|
151
|
+
if (parsed.action === "admit" && ws.data.isHost && room) {
|
|
152
|
+
const targetId = parsed.data?.peerId;
|
|
153
|
+
if (!targetId)
|
|
154
|
+
return;
|
|
155
|
+
const waiters = waitingRooms.get(room);
|
|
156
|
+
const targetWs = targetId ? clients.get(targetId) : undefined;
|
|
157
|
+
if (waiters && waiters.has(targetId) && targetWs) {
|
|
158
|
+
waiters.delete(targetId);
|
|
159
|
+
waitingRooms.set(room, waiters);
|
|
160
|
+
targetWs.data.admitted = true;
|
|
161
|
+
targetWs.subscribe(`room:${room}`);
|
|
162
|
+
const set = roomMembers.get(room) ?? new Set();
|
|
163
|
+
set.add(targetId);
|
|
164
|
+
roomMembers.set(room, set);
|
|
165
|
+
const presence = {
|
|
166
|
+
type: "presence",
|
|
167
|
+
room,
|
|
168
|
+
peerId: targetId,
|
|
169
|
+
peers: Array.from(set),
|
|
170
|
+
action: "join",
|
|
171
|
+
};
|
|
172
|
+
targetWs.publish(`room:${room}`, JSON.stringify(presence));
|
|
173
|
+
targetWs.send(JSON.stringify(presence));
|
|
174
|
+
broadcastToHosts(room, {
|
|
175
|
+
action: "waiting-list",
|
|
176
|
+
data: { waiting: Array.from(waiters) },
|
|
177
|
+
});
|
|
178
|
+
sendControl(targetWs, {
|
|
179
|
+
action: "admitted",
|
|
180
|
+
room,
|
|
181
|
+
from: ws.data.peerId,
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
if (parsed.action === "reject" && ws.data.isHost && room) {
|
|
187
|
+
const targetId = parsed.data?.peerId;
|
|
188
|
+
if (!targetId)
|
|
189
|
+
return;
|
|
190
|
+
const waiters = waitingRooms.get(room);
|
|
191
|
+
const targetWs = targetId ? clients.get(targetId) : undefined;
|
|
192
|
+
if (waiters && waiters.has(targetId) && targetWs) {
|
|
193
|
+
waiters.delete(targetId);
|
|
194
|
+
waitingRooms.set(room, waiters);
|
|
195
|
+
sendControl(targetWs, {
|
|
196
|
+
action: "rejected",
|
|
197
|
+
room,
|
|
198
|
+
from: ws.data.peerId,
|
|
199
|
+
});
|
|
200
|
+
targetWs.close();
|
|
201
|
+
broadcastToHosts(room, {
|
|
202
|
+
action: "waiting-list",
|
|
203
|
+
data: { waiting: Array.from(waiters) },
|
|
204
|
+
});
|
|
205
|
+
}
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
if (parsed.action === "raise-hand" && room) {
|
|
209
|
+
broadcastToHosts(room, {
|
|
210
|
+
action: "raise-hand",
|
|
211
|
+
data: { peerId: ws.data.peerId },
|
|
212
|
+
});
|
|
213
|
+
return;
|
|
214
|
+
}
|
|
215
|
+
if (parsed.action === "hand-lowered" && room) {
|
|
216
|
+
broadcastToHosts(room, {
|
|
217
|
+
action: "hand-lowered",
|
|
218
|
+
data: { peerId: ws.data.peerId },
|
|
219
|
+
});
|
|
220
|
+
return;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
close(ws) {
|
|
225
|
+
const { peerId, room } = ws.data;
|
|
226
|
+
ws.unsubscribe(`peer:${peerId}`);
|
|
227
|
+
clients.delete(peerId);
|
|
228
|
+
if (room) {
|
|
229
|
+
const waiters = waitingRooms.get(room);
|
|
230
|
+
if (waiters && waiters.delete(peerId)) {
|
|
231
|
+
waitingRooms.set(room, waiters);
|
|
232
|
+
broadcastToHosts(room, {
|
|
233
|
+
action: "waiting-list",
|
|
234
|
+
data: { waiting: Array.from(waiters) },
|
|
235
|
+
});
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
238
|
+
ws.unsubscribe(`room:${room}`);
|
|
239
|
+
const set = roomMembers.get(room);
|
|
240
|
+
if (set) {
|
|
241
|
+
set.delete(peerId);
|
|
242
|
+
if (set.size === 0) {
|
|
243
|
+
roomMembers.delete(room);
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
roomMembers.set(room, set);
|
|
247
|
+
}
|
|
248
|
+
const presence = {
|
|
249
|
+
type: "presence",
|
|
250
|
+
room,
|
|
251
|
+
peerId,
|
|
252
|
+
peers: Array.from(set),
|
|
253
|
+
action: "leave",
|
|
254
|
+
};
|
|
255
|
+
ws.publish(`room:${room}`, JSON.stringify(presence));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
},
|
|
260
|
+
});
|
|
261
|
+
console.log(`Signaling server running on ws://localhost:${liveServer.port}`);
|
|
262
|
+
console.log(`LAN access (if allowed by firewall): ws://<your-lan-ip>:${liveServer.port}`);
|
|
263
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|