@dobuki/hello-worker 1.0.4 → 1.0.6
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/README.md +1 -1
- package/dist/enter-world.d.ts +26 -0
- package/dist/enter-world.d.ts.map +1 -0
- package/dist/enter-world.js +89 -0
- package/dist/enter-world.js.map +1 -0
- package/dist/impl/signal-room.d.ts +5 -15
- package/dist/impl/signal-room.d.ts.map +1 -1
- package/dist/impl/signal-room.js +6 -15
- package/dist/impl/signal-room.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/sample/index.d.ts +4 -0
- package/dist/sample/index.d.ts.map +1 -0
- package/dist/sample/index.js +145 -0
- package/dist/sample/index.js.map +1 -0
- package/dist/sample.js +1 -1
- package/dist/sample.js.map +1 -1
- package/dist/signal-room.d.ts +4 -5
- package/dist/signal-room.d.ts.map +1 -1
- package/dist/signal-room.js +13 -10
- package/dist/signal-room.js.map +1 -1
- package/dist/signal-room.worker.d.ts +25 -1
- package/dist/signal-room.worker.d.ts.map +1 -1
- package/dist/signal-room.worker.js +9 -10
- package/dist/signal-room.worker.js.map +1 -1
- package/dist/webrtc-peer-collector.d.ts +34 -0
- package/dist/webrtc-peer-collector.d.ts.map +1 -0
- package/dist/webrtc-peer-collector.js +154 -0
- package/dist/webrtc-peer-collector.js.map +1 -0
- package/dist/webrtc-room.d.ts +36 -8
- package/dist/webrtc-room.d.ts.map +1 -1
- package/dist/webrtc-room.js +112 -111
- package/dist/webrtc-room.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { EnterRoom } from "./signal-room";
|
|
2
|
+
import { SigType, SigPayload } from "./webrtc-peer-collector";
|
|
3
|
+
export declare function enterWorld({ uid, logLine, enterRoomFunction, autoLeaveUsers, workerUrl, }: {
|
|
4
|
+
uid?: string;
|
|
5
|
+
logLine?: (direction: string, obj?: any) => void;
|
|
6
|
+
enterRoomFunction?: EnterRoom<SigType, SigPayload>;
|
|
7
|
+
autoLeaveUsers?: boolean;
|
|
8
|
+
workerUrl?: URL;
|
|
9
|
+
}): {
|
|
10
|
+
userId: string;
|
|
11
|
+
send: (data: any, userId?: string) => void;
|
|
12
|
+
enterRoom: ({ room, host }: {
|
|
13
|
+
room: string;
|
|
14
|
+
host: string;
|
|
15
|
+
}) => void;
|
|
16
|
+
exitRoom: ({ room, host }: {
|
|
17
|
+
room: string;
|
|
18
|
+
host: string;
|
|
19
|
+
}) => void;
|
|
20
|
+
leaveUser: (userId: string) => void;
|
|
21
|
+
getUsers: () => string[];
|
|
22
|
+
addMessageListener: (listener: (data: any, from: string) => void) => () => void;
|
|
23
|
+
removeMessageListener: (listener: (data: any, from: string) => void) => void;
|
|
24
|
+
end(): void;
|
|
25
|
+
};
|
|
26
|
+
//# sourceMappingURL=enter-world.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enter-world.d.ts","sourceRoot":"","sources":["../src/browser/enter-world.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAa,MAAM,eAAe,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,UAAU,EAA0B,MAAM,yBAAyB,CAAC;AAEtF,wBAAgB,UAAU,CAAC,EACzB,GAAG,EAAE,OAAuB,EAAE,iBAA6B,EAAE,cAAsB,EAAE,SAAS,GAC/F,EAAE;IACD,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,iBAAiB,CAAC,EAAE,SAAS,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACnD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB;;iBAiDqB,GAAG,WAAW,MAAM;;;;;;;;;;;mCAWF,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI;sCAJ9B,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI;;EA8B3E"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { enterRoom } from "./signal-room";
|
|
2
|
+
import { collectPeerConnections } from "./webrtc-peer-collector";
|
|
3
|
+
export function enterWorld({ uid, logLine = console.debug, enterRoomFunction = enterRoom, autoLeaveUsers = false, workerUrl, }) {
|
|
4
|
+
const userId = uid ?? `user-${crypto.randomUUID()}`;
|
|
5
|
+
const rtcConfig = {
|
|
6
|
+
iceServers: [{ urls: "stun:stun.l.google.com:19302" }],
|
|
7
|
+
};
|
|
8
|
+
const messagesListeners = new Set();
|
|
9
|
+
function wireDataChannel(userId, dc) {
|
|
10
|
+
dc.onopen = () => logLine("💬", { event: "dc-open", userId });
|
|
11
|
+
dc.onmessage = ({ data }) => {
|
|
12
|
+
messagesListeners.forEach(listener => listener(data, userId));
|
|
13
|
+
logLine("💬", { event: "dc-message", userId, data: data });
|
|
14
|
+
};
|
|
15
|
+
dc.onclose = () => logLine("💬", { event: "dc-close", userId });
|
|
16
|
+
dc.onerror = () => logLine("⚠️ ERROR", { error: "dc-error", userId });
|
|
17
|
+
}
|
|
18
|
+
const dataChannels = new Map();
|
|
19
|
+
const { enterRoom, exitRoom, leaveUser, getUsers, getRooms, } = collectPeerConnections({
|
|
20
|
+
userId,
|
|
21
|
+
rtcConfig,
|
|
22
|
+
enterRoomFunction,
|
|
23
|
+
logLine,
|
|
24
|
+
workerUrl,
|
|
25
|
+
leaveUserWithoutPeer: autoLeaveUsers,
|
|
26
|
+
onLeaveUser: (userId) => {
|
|
27
|
+
const dc = dataChannels.get(userId);
|
|
28
|
+
try {
|
|
29
|
+
dc?.close();
|
|
30
|
+
}
|
|
31
|
+
catch { }
|
|
32
|
+
dataChannels.delete(userId);
|
|
33
|
+
},
|
|
34
|
+
receivePeerConnection({ pc, userId, initiator }) {
|
|
35
|
+
if (initiator) {
|
|
36
|
+
const dc = pc.createDataChannel("data");
|
|
37
|
+
wireDataChannel(userId, dc);
|
|
38
|
+
dataChannels.set(userId, dc);
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
pc.ondatachannel = (ev) => {
|
|
42
|
+
const dc = ev.channel;
|
|
43
|
+
wireDataChannel(userId, dc);
|
|
44
|
+
dataChannels.set(userId, dc);
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
logLine("💬", { event: "pc-ready", userId, initiator });
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
function send(data, userId) {
|
|
51
|
+
dataChannels.forEach((dataChannel, pUserId) => {
|
|
52
|
+
if (userId && pUserId !== userId)
|
|
53
|
+
return;
|
|
54
|
+
if (dataChannel.readyState === "open")
|
|
55
|
+
dataChannel.send(data);
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
function removeMessageListener(listener) {
|
|
59
|
+
messagesListeners.delete(listener);
|
|
60
|
+
}
|
|
61
|
+
function addMessageListener(listener) {
|
|
62
|
+
messagesListeners.add(listener);
|
|
63
|
+
return () => {
|
|
64
|
+
removeMessageListener(listener);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
userId,
|
|
69
|
+
send,
|
|
70
|
+
enterRoom,
|
|
71
|
+
exitRoom,
|
|
72
|
+
leaveUser,
|
|
73
|
+
getUsers,
|
|
74
|
+
addMessageListener,
|
|
75
|
+
removeMessageListener,
|
|
76
|
+
end() {
|
|
77
|
+
getUsers().forEach(user => leaveUser(user));
|
|
78
|
+
getRooms().forEach(({ room, host }) => exitRoom({ room, host }));
|
|
79
|
+
dataChannels.forEach((dataChannel) => {
|
|
80
|
+
try {
|
|
81
|
+
dataChannel.close();
|
|
82
|
+
}
|
|
83
|
+
catch { }
|
|
84
|
+
});
|
|
85
|
+
dataChannels.clear();
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=enter-world.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enter-world.js","sourceRoot":"","sources":["../src/browser/enter-world.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,10 @@
|
|
|
1
|
-
export interface
|
|
1
|
+
export interface IPeer<T extends string = string, P = any> {
|
|
2
2
|
userId: string;
|
|
3
|
+
peerId: string;
|
|
3
4
|
receive(type: T, payload: P): boolean;
|
|
4
5
|
}
|
|
5
6
|
/**
|
|
6
7
|
* enterRoom connects to the signaling room via WebSocket.
|
|
7
|
-
*
|
|
8
|
-
* Usage:
|
|
9
|
-
* const { exitRoom } = enterRoom({
|
|
10
|
-
* room: "test",
|
|
11
|
-
* host: location.host,
|
|
12
|
-
* onOpen: () => { ... },
|
|
13
|
-
* onClose: () => { ... },
|
|
14
|
-
* onError: () => { ... },
|
|
15
|
-
* onPeerJoined: (user) => { ... },
|
|
16
|
-
* onMessage: (type, payload, fromUser) => { ... },
|
|
17
|
-
* });
|
|
18
8
|
*/
|
|
19
9
|
export declare function enterRoom<T extends string, P = any>({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }: {
|
|
20
10
|
userId: string;
|
|
@@ -24,9 +14,9 @@ export declare function enterRoom<T extends string, P = any>({ userId, room, hos
|
|
|
24
14
|
onClose?: () => void;
|
|
25
15
|
onError?: () => void;
|
|
26
16
|
logLine?: (direction: string, obj?: any) => void;
|
|
27
|
-
onPeerJoined
|
|
28
|
-
onPeerLeft
|
|
29
|
-
onMessage
|
|
17
|
+
onPeerJoined(user: IPeer<T, P>): void;
|
|
18
|
+
onPeerLeft(userId: IPeer["userId"], peerId: IPeer["peerId"]): void;
|
|
19
|
+
onMessage(type: T, payload: P, from: IPeer<T, P>): void;
|
|
30
20
|
}): {
|
|
31
21
|
exitRoom: () => void;
|
|
32
22
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;CACzC;AAED
|
|
1
|
+
{"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,KAAK,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;CACzC;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EACjD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,GACZ,EAAE;IACC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IACjD,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,IAAI,CAAC;IACvC,UAAU,CAAC,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAI,IAAI,CAAC;IACpE,SAAS,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,GAAI,IAAI,CAAC;CAC5D,GAAG;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAuE3B"}
|
package/dist/impl/signal-room.js
CHANGED
|
@@ -1,16 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* enterRoom connects to the signaling room via WebSocket.
|
|
3
|
-
*
|
|
4
|
-
* Usage:
|
|
5
|
-
* const { exitRoom } = enterRoom({
|
|
6
|
-
* room: "test",
|
|
7
|
-
* host: location.host,
|
|
8
|
-
* onOpen: () => { ... },
|
|
9
|
-
* onClose: () => { ... },
|
|
10
|
-
* onError: () => { ... },
|
|
11
|
-
* onPeerJoined: (user) => { ... },
|
|
12
|
-
* onMessage: (type, payload, fromUser) => { ... },
|
|
13
|
-
* });
|
|
14
3
|
*/
|
|
15
4
|
export function enterRoom({ userId, room, host, onOpen, onClose, onError, logLine, onPeerJoined, onPeerLeft, onMessage, }) {
|
|
16
5
|
const wsUrl = "wss://" + host + "/room/" + room + "?userId=" + encodeURIComponent(userId);
|
|
@@ -37,8 +26,9 @@ export function enterRoom({ userId, room, host, onOpen, onClose, onError, logLin
|
|
|
37
26
|
// Existing client greets newcomers
|
|
38
27
|
if (msg.type === "peer-joined" && msg.peerId && msg.userId) {
|
|
39
28
|
const { userId, peerId } = msg;
|
|
40
|
-
onPeerJoined
|
|
29
|
+
onPeerJoined({
|
|
41
30
|
userId,
|
|
31
|
+
peerId,
|
|
42
32
|
receive: (type, payload) => {
|
|
43
33
|
return send(type, peerId, payload);
|
|
44
34
|
},
|
|
@@ -46,14 +36,15 @@ export function enterRoom({ userId, room, host, onOpen, onClose, onError, logLin
|
|
|
46
36
|
return;
|
|
47
37
|
}
|
|
48
38
|
if (msg.type === "peer-left" && msg.peerId && msg.userId) {
|
|
49
|
-
const { userId } = msg;
|
|
50
|
-
onPeerLeft
|
|
39
|
+
const { userId, peerId } = msg;
|
|
40
|
+
onPeerLeft(userId, peerId);
|
|
51
41
|
return;
|
|
52
42
|
}
|
|
53
43
|
if (msg.peerId && msg.userId) {
|
|
54
44
|
const { userId, peerId } = msg;
|
|
55
|
-
onMessage
|
|
45
|
+
onMessage(msg.type, msg.payload, {
|
|
56
46
|
userId,
|
|
47
|
+
peerId,
|
|
57
48
|
receive: (type, payload) => {
|
|
58
49
|
return send(type, peerId, payload);
|
|
59
50
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../../src/browser/impl/signal-room.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export { enterRoom } from "./impl/signal-room
|
|
1
|
+
export { collectPeerConnections } from "./webrtc-peer-collector";
|
|
2
|
+
export { enterRoom } from "./impl/signal-room";
|
|
3
|
+
export { enterWorld } from "./enter-world";
|
|
3
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/// <reference lib="dom" />
|
|
2
2
|
/// <reference lib="dom.iterable" />
|
|
3
|
-
export {
|
|
4
|
-
export { enterRoom } from "./impl/signal-room
|
|
3
|
+
export { collectPeerConnections } from "./webrtc-peer-collector";
|
|
4
|
+
export { enterRoom } from "./impl/signal-room";
|
|
5
|
+
export { enterWorld } from "./enter-world";
|
|
5
6
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,oCAAoC;AAEpC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/browser/index.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B,oCAAoC;AAEpC,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/browser/sample/index.ts"],"names":[],"mappings":"AAuBA,wBAAgB,QAAQ,SAEvB;AAED,wBAAgB,WAAW,eAkC1B;AAED,wBAAgB,UAAU,eAiGzB"}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
/// <reference lib="dom" />
|
|
2
|
+
/// <reference lib="dom.iterable" />
|
|
3
|
+
import { enterRoom } from "../signal-room.js";
|
|
4
|
+
import { enterWorld } from "../enter-world.js";
|
|
5
|
+
const statusEl = document.getElementById("status");
|
|
6
|
+
const logEl = document.getElementById("log");
|
|
7
|
+
const welcomeEl = document.getElementById("welcome");
|
|
8
|
+
function ts() {
|
|
9
|
+
// HH:MM:SS.mmm (local time)
|
|
10
|
+
const d = new Date();
|
|
11
|
+
const p2 = (n) => String(n).padStart(2, "0");
|
|
12
|
+
const p3 = (n) => String(n).padStart(3, "0");
|
|
13
|
+
return `${p2(d.getHours())}:${p2(d.getMinutes())}:${p2(d.getSeconds())}.${p3(d.getMilliseconds())}`;
|
|
14
|
+
}
|
|
15
|
+
function logLine(direction, obj) {
|
|
16
|
+
logEl.textContent += ts() + " " + direction + " " + (obj ? JSON.stringify(obj) : "") + "\n";
|
|
17
|
+
logEl.scrollTop = logEl.scrollHeight;
|
|
18
|
+
}
|
|
19
|
+
export function clearLog() {
|
|
20
|
+
logEl.textContent = "";
|
|
21
|
+
}
|
|
22
|
+
export function testWelcome() {
|
|
23
|
+
const { exitRoom } = enterRoom({
|
|
24
|
+
userId: crypto.randomUUID(),
|
|
25
|
+
room: "test",
|
|
26
|
+
host: location.host,
|
|
27
|
+
onOpen: () => {
|
|
28
|
+
statusEl.textContent = "🟢 connected";
|
|
29
|
+
logLine("🔗 CONNECTED");
|
|
30
|
+
},
|
|
31
|
+
onClose: () => {
|
|
32
|
+
statusEl.textContent = "🔴 closed";
|
|
33
|
+
logLine("⛓️💥 DISCONNECTED");
|
|
34
|
+
},
|
|
35
|
+
onError: () => {
|
|
36
|
+
statusEl.textContent = "🔴 error";
|
|
37
|
+
logLine("⚠️ ERROR");
|
|
38
|
+
},
|
|
39
|
+
onPeerJoined: (user) => {
|
|
40
|
+
user.receive("welcome", { note: welcomeEl.value });
|
|
41
|
+
},
|
|
42
|
+
onPeerLeft: (info) => {
|
|
43
|
+
logLine("👤 LEFT", info);
|
|
44
|
+
},
|
|
45
|
+
onMessage: (type, payload, user) => {
|
|
46
|
+
if (type === "welcome") {
|
|
47
|
+
user.receive("thanks", { note: "Thank you! 🙏" });
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
logLine,
|
|
51
|
+
workerUrl: new URL("../signal-room.worker.js", import.meta.url),
|
|
52
|
+
});
|
|
53
|
+
return () => {
|
|
54
|
+
exitRoom();
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export function testWebRTC() {
|
|
58
|
+
// --- create a stage + emoji (if not already in HTML) ---
|
|
59
|
+
let stageEl = document.getElementById("stage");
|
|
60
|
+
if (!stageEl) {
|
|
61
|
+
stageEl = document.createElement("div");
|
|
62
|
+
stageEl.id = "stage";
|
|
63
|
+
stageEl.style.position = "relative";
|
|
64
|
+
stageEl.style.width = "100%";
|
|
65
|
+
stageEl.style.height = "280px";
|
|
66
|
+
stageEl.style.border = "1px solid #333";
|
|
67
|
+
stageEl.style.borderRadius = "8px";
|
|
68
|
+
stageEl.style.margin = "12px 0";
|
|
69
|
+
stageEl.style.userSelect = "none";
|
|
70
|
+
stageEl.style.touchAction = "none";
|
|
71
|
+
document.body.insertBefore(stageEl, welcomeEl);
|
|
72
|
+
}
|
|
73
|
+
welcomeEl.classList.add("hidden");
|
|
74
|
+
let emojiEl = document.getElementById("emoji");
|
|
75
|
+
if (!emojiEl) {
|
|
76
|
+
emojiEl = document.createElement("div");
|
|
77
|
+
emojiEl.id = "emoji";
|
|
78
|
+
emojiEl.textContent = "🦊";
|
|
79
|
+
emojiEl.style.position = "absolute";
|
|
80
|
+
emojiEl.style.left = "0px";
|
|
81
|
+
emojiEl.style.top = "0px";
|
|
82
|
+
emojiEl.style.transform = "translate(-50%, -50%)";
|
|
83
|
+
emojiEl.style.fontSize = "36px";
|
|
84
|
+
emojiEl.style.pointerEvents = "none";
|
|
85
|
+
stageEl.appendChild(emojiEl);
|
|
86
|
+
}
|
|
87
|
+
function setEmojiPos01(x01, y01) {
|
|
88
|
+
const r = stageEl.getBoundingClientRect();
|
|
89
|
+
const x = Math.max(0, Math.min(1, x01)) * r.width;
|
|
90
|
+
const y = Math.max(0, Math.min(1, y01)) * r.height;
|
|
91
|
+
emojiEl.style.left = `${x}px`;
|
|
92
|
+
emojiEl.style.top = `${y}px`;
|
|
93
|
+
}
|
|
94
|
+
// --- start WebRTC mesh using YOUR joinWebRTCRoom ---
|
|
95
|
+
statusEl.textContent = "🟡 connecting";
|
|
96
|
+
logLine("💬", { event: "start-webrtc-test" });
|
|
97
|
+
const session = enterWorld({
|
|
98
|
+
logLine,
|
|
99
|
+
workerUrl: new URL("../signal-room.worker.js", import.meta.url),
|
|
100
|
+
});
|
|
101
|
+
session.enterRoom({
|
|
102
|
+
room: "test",
|
|
103
|
+
host: location.host,
|
|
104
|
+
});
|
|
105
|
+
session.addMessageListener(data => {
|
|
106
|
+
try {
|
|
107
|
+
const { x, y } = JSON.parse(String(data));
|
|
108
|
+
if (typeof x === "number" && typeof y === "number") {
|
|
109
|
+
setEmojiPos01(x, y);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
catch {
|
|
113
|
+
// ignore non-json
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
// --- send mouse position over all open data channels ---
|
|
117
|
+
let lastSent = 0;
|
|
118
|
+
function broadcastMove(x01, y01) {
|
|
119
|
+
const now = performance.now();
|
|
120
|
+
if (now - lastSent < 16)
|
|
121
|
+
return; // ~60Hz throttle
|
|
122
|
+
lastSent = now;
|
|
123
|
+
const msg = JSON.stringify({ x: x01, y: y01 });
|
|
124
|
+
session.send(msg);
|
|
125
|
+
}
|
|
126
|
+
function onPointerMove(ev) {
|
|
127
|
+
const r = stageEl.getBoundingClientRect();
|
|
128
|
+
const x01 = (ev.clientX - r.left) / r.width;
|
|
129
|
+
const y01 = (ev.clientY - r.top) / r.height;
|
|
130
|
+
// move locally too (feels instant)
|
|
131
|
+
setEmojiPos01(x01, y01);
|
|
132
|
+
// broadcast to peers via datachannel
|
|
133
|
+
broadcastMove(x01, y01);
|
|
134
|
+
}
|
|
135
|
+
stageEl.addEventListener("pointermove", onPointerMove);
|
|
136
|
+
// return cleanup function (same pattern as testWelcome)
|
|
137
|
+
return () => {
|
|
138
|
+
stageEl.removeEventListener("pointermove", onPointerMove);
|
|
139
|
+
stageEl.remove();
|
|
140
|
+
welcomeEl.classList.remove("hidden");
|
|
141
|
+
session.end();
|
|
142
|
+
logLine("💬", { event: "stop-webrtc-test" });
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/browser/sample/index.ts"],"names":[],"mappings":"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"}
|
package/dist/sample.js
CHANGED
package/dist/sample.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"sample.js","sourceRoot":"","sources":["../src/browser/sample.ts"],"names":[],"mappings":"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"}
|
package/dist/signal-room.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { IPeer } from "./impl/signal-room.js";
|
|
2
2
|
export declare function enterRoom<T extends string, P = any>({ userId, room, host, onOpen, onClose, onError, onPeerJoined, onPeerLeft, onMessage, logLine, workerUrl, }: {
|
|
3
3
|
userId: string;
|
|
4
4
|
room: string;
|
|
@@ -6,14 +6,13 @@ export declare function enterRoom<T extends string, P = any>({ userId, room, hos
|
|
|
6
6
|
onOpen?: () => void;
|
|
7
7
|
onClose?: () => void;
|
|
8
8
|
onError?: () => void;
|
|
9
|
-
onPeerJoined
|
|
10
|
-
onPeerLeft
|
|
11
|
-
onMessage
|
|
9
|
+
onPeerJoined: (user: IPeer<T, P>) => void;
|
|
10
|
+
onPeerLeft: (userId: string, peerId: string) => void;
|
|
11
|
+
onMessage: (type: T, payload: P, from: IPeer<T, P>) => void;
|
|
12
12
|
logLine?: (direction: string, obj?: any) => void;
|
|
13
13
|
workerUrl?: URL;
|
|
14
14
|
}): {
|
|
15
15
|
exitRoom: () => void;
|
|
16
16
|
};
|
|
17
17
|
export type EnterRoom<T extends string, P> = typeof enterRoom<T, P>;
|
|
18
|
-
export type { IUser };
|
|
19
18
|
//# sourceMappingURL=signal-room.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"signal-room.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKnD,wBAAgB,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,GAAG,GAAG,EAAE,EACnD,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,MAAM,EACN,OAAO,EACP,OAAO,EACP,YAAY,EACZ,UAAU,EACV,SAAS,EACT,OAAO,EACP,SAAS,GACV,EAAE;IACD,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC1C,UAAU,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;IACrD,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC;IAC5D,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAGjD,SAAS,CAAC,EAAE,GAAG,CAAC;CACjB,GAAG;IAAE,QAAQ,EAAE,MAAM,IAAI,CAAA;CAAE,CAuD3B;AAED,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,IAAI,OAAO,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC"}
|
package/dist/signal-room.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { enterRoom as baseEnterRoom } from "./impl/signal-room.js";
|
|
2
2
|
export function enterRoom({ userId, room, host, onOpen, onClose, onError, onPeerJoined, onPeerLeft, onMessage, logLine, workerUrl, }) {
|
|
3
3
|
if (!workerUrl) {
|
|
4
|
-
const CDN_WORKER_URL = `https://cdn.jsdelivr.net/npm/@dobuki/hello-worker@${__VERSION__}/dist/signal-room.worker.js`;
|
|
4
|
+
const CDN_WORKER_URL = `https://cdn.jsdelivr.net/npm/@dobuki/hello-worker@${__VERSION__}/dist/signal-room.worker.min.js`;
|
|
5
5
|
console.warn("Warning: enterRoom called without workerUrl; this may cause issues in some environments. You should pass workerUrl explicitly. Use:", CDN_WORKER_URL);
|
|
6
6
|
return baseEnterRoom({
|
|
7
7
|
userId,
|
|
@@ -16,11 +16,15 @@ export function enterRoom({ userId, room, host, onOpen, onClose, onError, onPeer
|
|
|
16
16
|
});
|
|
17
17
|
}
|
|
18
18
|
const worker = new Worker(workerUrl, { type: "module" });
|
|
19
|
-
|
|
19
|
+
let exited = false;
|
|
20
|
+
function makeUser({ userId, peerId }) {
|
|
20
21
|
return {
|
|
21
22
|
userId,
|
|
23
|
+
peerId,
|
|
22
24
|
receive: (type, payload) => {
|
|
23
|
-
|
|
25
|
+
if (exited)
|
|
26
|
+
return false;
|
|
27
|
+
worker.postMessage({ cmd: "send", toPeerId: peerId, type, payload });
|
|
24
28
|
return true;
|
|
25
29
|
},
|
|
26
30
|
};
|
|
@@ -30,26 +34,25 @@ export function enterRoom({ userId, room, host, onOpen, onClose, onError, onPeer
|
|
|
30
34
|
if (ev.kind === "open")
|
|
31
35
|
onOpen?.();
|
|
32
36
|
else if (ev.kind === "close")
|
|
33
|
-
|
|
37
|
+
worker.terminate();
|
|
34
38
|
else if (ev.kind === "error")
|
|
35
39
|
onError?.();
|
|
36
40
|
else if (ev.kind === "peer-joined")
|
|
37
|
-
onPeerJoined
|
|
41
|
+
onPeerJoined(makeUser({ userId: ev.userId, peerId: ev.peerId }));
|
|
38
42
|
else if (ev.kind === "peer-left")
|
|
39
|
-
onPeerLeft
|
|
43
|
+
onPeerLeft(ev.userId, ev.peerId);
|
|
40
44
|
else if (ev.kind === "message")
|
|
41
|
-
onMessage
|
|
45
|
+
onMessage(ev.type, ev.payload, makeUser({ userId: ev.fromUserId, peerId: ev.fromPeerId }));
|
|
42
46
|
else if (ev.kind === "log")
|
|
43
47
|
logLine?.(ev.direction, ev.obj);
|
|
44
48
|
};
|
|
45
49
|
worker.addEventListener("message", onWorkerMessage);
|
|
46
50
|
worker.postMessage({ cmd: "enter", userId, room, host });
|
|
47
|
-
window._worker = worker; // for debugging
|
|
48
51
|
return {
|
|
49
52
|
exitRoom: () => {
|
|
50
|
-
|
|
53
|
+
exited = true;
|
|
51
54
|
worker.removeEventListener("message", onWorkerMessage);
|
|
52
|
-
worker.
|
|
55
|
+
worker.postMessage({ cmd: "exit" });
|
|
53
56
|
},
|
|
54
57
|
};
|
|
55
58
|
}
|
package/dist/signal-room.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"signal-room.js","sourceRoot":"","sources":["../src/browser/signal-room.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,26 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export type RoomEvent<T extends string = string, P = any> = {
|
|
2
|
+
kind: "open";
|
|
3
|
+
} | {
|
|
4
|
+
kind: "close";
|
|
5
|
+
} | {
|
|
6
|
+
kind: "error";
|
|
7
|
+
} | {
|
|
8
|
+
kind: "peer-joined";
|
|
9
|
+
userId: string;
|
|
10
|
+
peerId: string;
|
|
11
|
+
} | {
|
|
12
|
+
kind: "peer-left";
|
|
13
|
+
userId: string;
|
|
14
|
+
peerId: string;
|
|
15
|
+
} | {
|
|
16
|
+
kind: "message";
|
|
17
|
+
type: T;
|
|
18
|
+
payload: P;
|
|
19
|
+
fromUserId: string;
|
|
20
|
+
fromPeerId: string;
|
|
21
|
+
} | {
|
|
22
|
+
kind: "log";
|
|
23
|
+
direction: string;
|
|
24
|
+
obj?: any;
|
|
25
|
+
};
|
|
2
26
|
//# sourceMappingURL=signal-room.worker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signal-room.worker.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.worker.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"signal-room.worker.d.ts","sourceRoot":"","sources":["../src/browser/signal-room.worker.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,SAAS,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,GAAG,IACpD;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,OAAO,CAAA;CAAE,GACjB;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACvD;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,CAAC,CAAC;IAAC,OAAO,EAAE,CAAC,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GAChF;IAAE,IAAI,EAAE,KAAK,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC"}
|