@rtsee/signaling 0.0.86 → 0.0.88
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/signaling/src/interfaces/RTSeeConferenceSignalingOptions.d.ts +3 -0
- package/dist/signaling/src/interfaces/RTSeeConferenceSignalingOptions.d.ts.map +1 -1
- package/dist/signaling/src/interfaces/RTSeeSignalingOptions.d.ts +3 -0
- package/dist/signaling/src/interfaces/RTSeeSignalingOptions.d.ts.map +1 -1
- package/dist/signaling/src/models/RTSeeConferenceSignaling.d.ts +65 -0
- package/dist/signaling/src/models/RTSeeConferenceSignaling.d.ts.map +1 -1
- package/dist/signaling/src/models/RTSeeConferenceSignaling.js +65 -0
- package/dist/signaling/src/models/RTSeeConferenceSignaling.js.map +1 -1
- package/dist/signaling/src/models/RTSeeSignalingBase.d.ts +96 -0
- package/dist/signaling/src/models/RTSeeSignalingBase.d.ts.map +1 -1
- package/dist/signaling/src/models/RTSeeSignalingBase.js +92 -0
- package/dist/signaling/src/models/RTSeeSignalingBase.js.map +1 -1
- package/dist/signaling/src/models/RTSeeSocketConnectionsManager.d.ts +32 -0
- package/dist/signaling/src/models/RTSeeSocketConnectionsManager.d.ts.map +1 -1
- package/dist/signaling/src/models/RTSeeSocketConnectionsManager.js +32 -0
- package/dist/signaling/src/models/RTSeeSocketConnectionsManager.js.map +1 -1
- package/dist/signaling/src/models/SocketPeer.d.ts +3 -0
- package/dist/signaling/src/models/SocketPeer.d.ts.map +1 -1
- package/dist/signaling/src/models/SocketPeer.js +3 -0
- package/dist/signaling/src/models/SocketPeer.js.map +1 -1
- package/package.json +2 -2
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { IRTSeeSignalingOptions } from "@rtsee/signaling";
|
|
2
2
|
import { IRTSeeConferenceStorageProcessor } from "@rtsee/common";
|
|
3
|
+
/**
|
|
4
|
+
* Options for conference signaling (extends signaling options with storage handlers).
|
|
5
|
+
*/
|
|
3
6
|
export interface IRTSeeConferenceSignalingOptions extends IRTSeeSignalingOptions {
|
|
4
7
|
storageHandlers?: IRTSeeConferenceStorageProcessor;
|
|
5
8
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeConferenceSignalingOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/RTSeeConferenceSignalingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEjE,MAAM,WAAW,gCACf,SAAQ,sBAAsB;IAC9B,eAAe,CAAC,EAAE,gCAAgC,CAAC;CACpD"}
|
|
1
|
+
{"version":3,"file":"RTSeeConferenceSignalingOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/RTSeeConferenceSignalingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,EAAE,gCAAgC,EAAE,MAAM,eAAe,CAAC;AAEjE;;GAEG;AACH,MAAM,WAAW,gCACf,SAAQ,sBAAsB;IAC9B,eAAe,CAAC,EAAE,gCAAgC,CAAC;CACpD"}
|
|
@@ -3,6 +3,9 @@ import * as SocketIO from "socket.io";
|
|
|
3
3
|
import { IPeer } from "@rtsee/core";
|
|
4
4
|
import { ISignalingAuthParams, RTSeeSocketConnectionsManager } from "@rtsee/signaling";
|
|
5
5
|
import { RedisClientType } from "redis";
|
|
6
|
+
/**
|
|
7
|
+
* Options for initializing the signaling server (HTTP server, Socket.IO, auth, Redis, connections manager).
|
|
8
|
+
*/
|
|
6
9
|
export interface IRTSeeSignalingOptions {
|
|
7
10
|
server?: http.Server;
|
|
8
11
|
serverOptions?: Partial<SocketIO.ServerOptions>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeSignalingOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/RTSeeSignalingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
1
|
+
{"version":3,"file":"RTSeeSignalingOptions.d.ts","sourceRoot":"","sources":["../../../../src/interfaces/RTSeeSignalingOptions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EACL,oBAAoB,EACpB,6BAA6B,EAC9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAExC;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjE,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,kBAAkB,CAAC,EAAE,6BAA6B,CAAC;IACnD,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -9,33 +9,98 @@ import { RTSeeConferenceStorage } from "@rtsee/live-storage";
|
|
|
9
9
|
export declare const JANUS_SESSION_PREFIX = "janus-session";
|
|
10
10
|
export declare const JANUS_SESSION_PREFIX_P = "janus-session-publisher";
|
|
11
11
|
export declare const JANUS_SESSION_PREFIX_S = "janus-session-subscriber";
|
|
12
|
+
/**
|
|
13
|
+
* Conference signaling server: room create/join, WebRTC signals (description, candidate, restart),
|
|
14
|
+
* device toggles, screen share stop, and optional Janus SFU integration.
|
|
15
|
+
*/
|
|
12
16
|
export declare class RTSeeConferenceSignaling extends RTSeeSignalingBase {
|
|
13
17
|
janusConnector: JanusConnector;
|
|
14
18
|
storage: RTSeeConferenceStorage;
|
|
19
|
+
/**
|
|
20
|
+
* @param options - Conference signaling options (useSFU, storageHandlers, etc.)
|
|
21
|
+
*/
|
|
15
22
|
constructor(options: IRTSeeConferenceSignalingOptions);
|
|
23
|
+
/**
|
|
24
|
+
* Attaches socket listeners for conference events (create room, join call, device toggles, WebRTC signals).
|
|
25
|
+
* @param socket - The connected socket peer
|
|
26
|
+
*/
|
|
16
27
|
onAfterConnected(socket: SocketPeer): void;
|
|
28
|
+
/**
|
|
29
|
+
* Creates a room via storage and emits NEW_ROOM_CREATED to the socket.
|
|
30
|
+
* @param socket - Socket requesting the room
|
|
31
|
+
* @param roomData - Room options
|
|
32
|
+
*/
|
|
17
33
|
handleCreateRoom(socket: SocketPeer, roomData: IRTSeeConferenceRoom): Promise<void>;
|
|
34
|
+
/**
|
|
35
|
+
* Handles join-call: uses SFU strategy if janusConnector is set, otherwise default (rooms).
|
|
36
|
+
* @param socket - Socket joining the call
|
|
37
|
+
* @param options - clientId and roomId
|
|
38
|
+
*/
|
|
18
39
|
handleJoinCallMessage(socket: SocketPeer, options: {
|
|
19
40
|
clientId: string;
|
|
20
41
|
roomId: string;
|
|
21
42
|
}): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Joins the socket to call and client rooms and broadcasts ROOM_CREATED or ROOM_JOINED.
|
|
45
|
+
* @param socket - Socket joining
|
|
46
|
+
* @param options - clientId and roomId
|
|
47
|
+
*/
|
|
22
48
|
useDefaultStrategy(socket: SocketPeer, options: {
|
|
23
49
|
clientId: string;
|
|
24
50
|
roomId: string;
|
|
25
51
|
}): void;
|
|
52
|
+
/**
|
|
53
|
+
* Joins the call via Janus SFU and forwards WebRTC events to the client's personal room.
|
|
54
|
+
* @param socket - Socket joining
|
|
55
|
+
* @param options - clientId and roomId
|
|
56
|
+
*/
|
|
26
57
|
useSfuStrategy(socket: SocketPeer, options: {
|
|
27
58
|
clientId: string;
|
|
28
59
|
roomId: string;
|
|
29
60
|
}): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* Broadcasts camera toggled state to the call room.
|
|
63
|
+
* @param socket - Sender socket
|
|
64
|
+
* @param options - Device state (deviceOn, from, roomId)
|
|
65
|
+
*/
|
|
30
66
|
handleCameraToggleMessage(socket: SocketPeer, options: IDeviceToggleData): void;
|
|
67
|
+
/**
|
|
68
|
+
* Broadcasts microphone toggled state to the call room.
|
|
69
|
+
* @param socket - Sender socket
|
|
70
|
+
* @param options - Device state (deviceOn, from, roomId)
|
|
71
|
+
*/
|
|
31
72
|
handleMicrophoneToggleMessage(socket: SocketPeer, options: IDeviceToggleData): void;
|
|
73
|
+
/**
|
|
74
|
+
* Broadcasts screen share stop to the call room.
|
|
75
|
+
* @param socket - Sender socket
|
|
76
|
+
* @param options - clientId and roomId
|
|
77
|
+
*/
|
|
32
78
|
handleScreenShareStopMessage(socket: SocketPeer, options: {
|
|
33
79
|
clientId: string;
|
|
34
80
|
roomId: string;
|
|
35
81
|
}): void;
|
|
82
|
+
/**
|
|
83
|
+
* Forwards SDP description to Janus session or to the target client's personal room.
|
|
84
|
+
* @param socket - Sender socket
|
|
85
|
+
* @param options - Description signal (to, type, description)
|
|
86
|
+
*/
|
|
36
87
|
handleDescription(socket: SocketPeer, options: IRTSeeConferenceDescriptionSignal): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Forwards ICE candidate to Janus session or to the target client's personal room.
|
|
90
|
+
* @param socket - Sender socket
|
|
91
|
+
* @param options - Candidate signal (to, type, candidate, isScreenShare)
|
|
92
|
+
*/
|
|
37
93
|
handleCandidate(socket: SocketPeer, options: IRTSeeConferenceCandidateSignal): void;
|
|
94
|
+
/**
|
|
95
|
+
* Forwards restart signal to the target client's personal room.
|
|
96
|
+
* @param socket - Sender socket
|
|
97
|
+
* @param options - Restart signal (to, type, etc.)
|
|
98
|
+
*/
|
|
38
99
|
handleRestart(socket: SocketPeer, options: IRTSeeConferenceRestartSignal): void;
|
|
100
|
+
/**
|
|
101
|
+
* Handles outgoing call event from a client.
|
|
102
|
+
* @param call - Call payload
|
|
103
|
+
*/
|
|
39
104
|
handleOutgoingCall(call: IRTSeeCall): void;
|
|
40
105
|
}
|
|
41
106
|
//# sourceMappingURL=RTSeeConferenceSignaling.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeConferenceSignaling.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeConferenceSignaling.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAKjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,EAE9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,oBAAoB,kBAAiB,CAAC;AACnD,eAAO,MAAM,sBAAsB,4BAAsC,CAAC;AAC1E,eAAO,MAAM,sBAAsB,6BAAuC,CAAC;AAE3E,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,cAAc,EAAE,cAAc,CAAQ;IACtC,OAAO,EAAE,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"RTSeeConferenceSignaling.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeConferenceSignaling.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gCAAgC,EAKjC,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EACL,UAAU,EACV,oBAAoB,EAGrB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,+BAA+B,EAC/B,iCAAiC,EACjC,6BAA6B,EAE9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAGL,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,eAAO,MAAM,oBAAoB,kBAAiB,CAAC;AACnD,eAAO,MAAM,sBAAsB,4BAAsC,CAAC;AAC1E,eAAO,MAAM,sBAAsB,6BAAuC,CAAC;AAE3E;;;GAGG;AACH,qBAAa,wBAAyB,SAAQ,kBAAkB;IAC9D,cAAc,EAAE,cAAc,CAAQ;IACtC,OAAO,EAAE,sBAAsB,CAAC;IAEhC;;OAEG;gBACS,OAAO,EAAE,gCAAgC;IAkBrD;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,UAAU;IA6CnC;;;;OAIG;IACG,gBAAgB,CAAC,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAKzF;;;;OAIG;IACG,qBAAqB,CACzB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAS/C;;;;OAIG;IACH,kBAAkB,CAChB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAmC/C;;;;OAIG;IACG,cAAc,CAClB,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAoD/C;;;;OAIG;IACH,yBAAyB,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,iBAAiB;IAcxE;;;;OAIG;IACH,6BAA6B,CAC3B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,iBAAiB;IAe5B;;;;OAIG;IACH,4BAA4B,CAC1B,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAmB/C;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,UAAU,EAAG,OAAO,EAAE,iCAAiC;IA8BvF;;;;OAIG;IACH,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,+BAA+B;IAiB5E;;;;OAIG;IACH,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,6BAA6B;IAQxE;;;OAGG;IACH,kBAAkB,CAAC,IAAI,EAAE,UAAU;CAGpC"}
|
|
@@ -19,7 +19,14 @@ const live_storage_1 = require("@rtsee/live-storage");
|
|
|
19
19
|
exports.JANUS_SESSION_PREFIX = 'janus-session';
|
|
20
20
|
exports.JANUS_SESSION_PREFIX_P = `${exports.JANUS_SESSION_PREFIX}-publisher`;
|
|
21
21
|
exports.JANUS_SESSION_PREFIX_S = `${exports.JANUS_SESSION_PREFIX}-subscriber`;
|
|
22
|
+
/**
|
|
23
|
+
* Conference signaling server: room create/join, WebRTC signals (description, candidate, restart),
|
|
24
|
+
* device toggles, screen share stop, and optional Janus SFU integration.
|
|
25
|
+
*/
|
|
22
26
|
class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
27
|
+
/**
|
|
28
|
+
* @param options - Conference signaling options (useSFU, storageHandlers, etc.)
|
|
29
|
+
*/
|
|
23
30
|
constructor(options) {
|
|
24
31
|
super(options);
|
|
25
32
|
this.janusConnector = null;
|
|
@@ -37,6 +44,10 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
37
44
|
this.storage = new live_storage_1.RTSeeConferenceStorage();
|
|
38
45
|
}
|
|
39
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* Attaches socket listeners for conference events (create room, join call, device toggles, WebRTC signals).
|
|
49
|
+
* @param socket - The connected socket peer
|
|
50
|
+
*/
|
|
40
51
|
onAfterConnected(socket) {
|
|
41
52
|
socket.on(signaling_1.SocketMessagesOutgoing.CREATE_ROOM, (options) => void this.handleCreateRoom(socket, options));
|
|
42
53
|
socket.on(signaling_1.SocketMessagesIncoming.JOIN_CALL, (options) => void this.handleJoinCallMessage(socket, options));
|
|
@@ -49,12 +60,22 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
49
60
|
socket.on(core_1.RTSeeEvents.OUTGOING_CALL, (call) => this.handleOutgoingCall(call));
|
|
50
61
|
// next();
|
|
51
62
|
}
|
|
63
|
+
/**
|
|
64
|
+
* Creates a room via storage and emits NEW_ROOM_CREATED to the socket.
|
|
65
|
+
* @param socket - Socket requesting the room
|
|
66
|
+
* @param roomData - Room options
|
|
67
|
+
*/
|
|
52
68
|
handleCreateRoom(socket, roomData) {
|
|
53
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
70
|
const room = yield this.storage.createRoom((0, core_1.socketPeerToTransport)(socket), roomData);
|
|
55
71
|
socket.emit(signaling_1.SocketMessagesOutgoing.NEW_ROOM_CREATED, room);
|
|
56
72
|
});
|
|
57
73
|
}
|
|
74
|
+
/**
|
|
75
|
+
* Handles join-call: uses SFU strategy if janusConnector is set, otherwise default (rooms).
|
|
76
|
+
* @param socket - Socket joining the call
|
|
77
|
+
* @param options - clientId and roomId
|
|
78
|
+
*/
|
|
58
79
|
handleJoinCallMessage(socket, options) {
|
|
59
80
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
81
|
if (this.janusConnector) {
|
|
@@ -65,6 +86,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
65
86
|
}
|
|
66
87
|
});
|
|
67
88
|
}
|
|
89
|
+
/**
|
|
90
|
+
* Joins the socket to call and client rooms and broadcasts ROOM_CREATED or ROOM_JOINED.
|
|
91
|
+
* @param socket - Socket joining
|
|
92
|
+
* @param options - clientId and roomId
|
|
93
|
+
*/
|
|
68
94
|
useDefaultStrategy(socket, options) {
|
|
69
95
|
const callRoomName = RTSeeConferenceSignaling.getCallRoomName(options.roomId);
|
|
70
96
|
const clientRoomName = RTSeeConferenceSignaling.getClientRoomName(options.clientId, options.roomId);
|
|
@@ -87,6 +113,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
87
113
|
}
|
|
88
114
|
RTSeeConferenceSignaling.broadcast(socket, event, callRoomName);
|
|
89
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Joins the call via Janus SFU and forwards WebRTC events to the client's personal room.
|
|
118
|
+
* @param socket - Socket joining
|
|
119
|
+
* @param options - clientId and roomId
|
|
120
|
+
*/
|
|
90
121
|
useSfuStrategy(socket, options) {
|
|
91
122
|
return __awaiter(this, void 0, void 0, function* () {
|
|
92
123
|
const janusSession = yield this.janusConnector.join(Object.assign(Object.assign({}, options), { socket }));
|
|
@@ -123,6 +154,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
123
154
|
}));
|
|
124
155
|
});
|
|
125
156
|
}
|
|
157
|
+
/**
|
|
158
|
+
* Broadcasts camera toggled state to the call room.
|
|
159
|
+
* @param socket - Sender socket
|
|
160
|
+
* @param options - Device state (deviceOn, from, roomId)
|
|
161
|
+
*/
|
|
126
162
|
handleCameraToggleMessage(socket, options) {
|
|
127
163
|
const callRoomName = RTSeeConferenceSignaling.getCallRoomName(options.roomId);
|
|
128
164
|
const event = {
|
|
@@ -134,6 +170,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
134
170
|
};
|
|
135
171
|
RTSeeConferenceSignaling.broadcast(socket, event, callRoomName);
|
|
136
172
|
}
|
|
173
|
+
/**
|
|
174
|
+
* Broadcasts microphone toggled state to the call room.
|
|
175
|
+
* @param socket - Sender socket
|
|
176
|
+
* @param options - Device state (deviceOn, from, roomId)
|
|
177
|
+
*/
|
|
137
178
|
handleMicrophoneToggleMessage(socket, options) {
|
|
138
179
|
const callRoomName = RTSeeConferenceSignaling.getCallRoomName(options.roomId);
|
|
139
180
|
const event = {
|
|
@@ -145,6 +186,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
145
186
|
};
|
|
146
187
|
RTSeeConferenceSignaling.broadcast(socket, event, callRoomName);
|
|
147
188
|
}
|
|
189
|
+
/**
|
|
190
|
+
* Broadcasts screen share stop to the call room.
|
|
191
|
+
* @param socket - Sender socket
|
|
192
|
+
* @param options - clientId and roomId
|
|
193
|
+
*/
|
|
148
194
|
handleScreenShareStopMessage(socket, options) {
|
|
149
195
|
const callRoomName = RTSeeConferenceSignaling.getCallRoomName(options.roomId);
|
|
150
196
|
const event = {
|
|
@@ -158,6 +204,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
158
204
|
}
|
|
159
205
|
RTSeeConferenceSignaling.broadcast(socket, event, callRoomName);
|
|
160
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* Forwards SDP description to Janus session or to the target client's personal room.
|
|
209
|
+
* @param socket - Sender socket
|
|
210
|
+
* @param options - Description signal (to, type, description)
|
|
211
|
+
*/
|
|
161
212
|
handleDescription(socket, options) {
|
|
162
213
|
return __awaiter(this, void 0, void 0, function* () {
|
|
163
214
|
if (options.to.includes(exports.JANUS_SESSION_PREFIX)) {
|
|
@@ -187,6 +238,11 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
187
238
|
}
|
|
188
239
|
});
|
|
189
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* Forwards ICE candidate to Janus session or to the target client's personal room.
|
|
243
|
+
* @param socket - Sender socket
|
|
244
|
+
* @param options - Candidate signal (to, type, candidate, isScreenShare)
|
|
245
|
+
*/
|
|
190
246
|
handleCandidate(socket, options) {
|
|
191
247
|
if (options.to.includes(exports.JANUS_SESSION_PREFIX)) {
|
|
192
248
|
const janusSessionId = parseInt(options.to.split('_')[1]);
|
|
@@ -201,9 +257,18 @@ class RTSeeConferenceSignaling extends RTSeeSignalingBase_1.RTSeeSignalingBase {
|
|
|
201
257
|
this.sendToIndividualRoom({ peer: { clientId: options.to, rtseeAppId: socket.rtseePeer.rtseeAppId } }, options.type, options);
|
|
202
258
|
}
|
|
203
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Forwards restart signal to the target client's personal room.
|
|
262
|
+
* @param socket - Sender socket
|
|
263
|
+
* @param options - Restart signal (to, type, etc.)
|
|
264
|
+
*/
|
|
204
265
|
handleRestart(socket, options) {
|
|
205
266
|
this.sendToIndividualRoom({ peer: { clientId: options.to, rtseeAppId: socket.rtseePeer.rtseeAppId } }, options.type, options);
|
|
206
267
|
}
|
|
268
|
+
/**
|
|
269
|
+
* Handles outgoing call event from a client.
|
|
270
|
+
* @param call - Call payload
|
|
271
|
+
*/
|
|
207
272
|
handleOutgoingCall(call) {
|
|
208
273
|
console.log("Handling outgoing call: ", call);
|
|
209
274
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeConferenceSignaling.js","sourceRoot":"","sources":["../../../../src/models/RTSeeConferenceSignaling.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gDAM0B;AAC1B,6DAA0D;AAG1D,sCAKqB;AACrB,0CAKuB;AACvB,4DAIgC;AAChC,sDAA6D;AAEhD,QAAA,oBAAoB,GAAE,eAAe,CAAC;AACtC,QAAA,sBAAsB,GAAG,GAAG,4BAAoB,YAAY,CAAC;AAC7D,QAAA,sBAAsB,GAAG,GAAG,4BAAoB,aAAa,CAAC;AAE3E,MAAa,wBAAyB,SAAQ,uCAAkB;IAI9D,YAAY,OAAyC;QACnD,KAAK,CAAC,OAAO,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"RTSeeConferenceSignaling.js","sourceRoot":"","sources":["../../../../src/models/RTSeeConferenceSignaling.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,10 @@ import { SocketPeer } from "@rtsee/signaling";
|
|
|
6
6
|
import { EventEmitter } from "events";
|
|
7
7
|
import { IPeer, IRTSeeTransport } from "@rtsee/core";
|
|
8
8
|
import { RedisClientType } from "redis";
|
|
9
|
+
/**
|
|
10
|
+
* Base class for RTSEE signaling servers. Handles Socket.IO server setup,
|
|
11
|
+
* authentication, connection manager and room helpers.
|
|
12
|
+
*/
|
|
9
13
|
export declare abstract class RTSeeSignalingBase extends EventEmitter {
|
|
10
14
|
server?: http.Server;
|
|
11
15
|
io?: SocketIO.Server;
|
|
@@ -15,30 +19,122 @@ export declare abstract class RTSeeSignalingBase extends EventEmitter {
|
|
|
15
19
|
initializedFromIo: boolean;
|
|
16
20
|
redisClient?: RedisClientType;
|
|
17
21
|
externalIo: boolean;
|
|
22
|
+
/**
|
|
23
|
+
* @param options - Signaling options (io, server, authenticate, connectionsManager, etc.)
|
|
24
|
+
*/
|
|
18
25
|
protected constructor(options: IRTSeeSignalingOptions);
|
|
26
|
+
/**
|
|
27
|
+
* Called after a client has connected and been authenticated. Override to attach socket listeners.
|
|
28
|
+
* @param socket - The connected socket peer
|
|
29
|
+
*/
|
|
19
30
|
abstract onAfterConnected(socket: SocketPeer): void;
|
|
31
|
+
/**
|
|
32
|
+
* Subscribes to connection manager events and re-emits them on this instance.
|
|
33
|
+
*/
|
|
20
34
|
attachConnectionManagerEvents(): void;
|
|
35
|
+
/**
|
|
36
|
+
* Emits CONNECTIONS_COUNT_CHANGED when the number of connections changes.
|
|
37
|
+
*/
|
|
21
38
|
onConnectionsCountChanged(): void;
|
|
39
|
+
/**
|
|
40
|
+
* Emits CLIENT_CONNECTED with the new connection.
|
|
41
|
+
* @param connection - The socket peer that connected
|
|
42
|
+
*/
|
|
22
43
|
onClientConnected(connection: SocketPeer): void;
|
|
44
|
+
/**
|
|
45
|
+
* Emits CLIENT_DISCONNECTED with the connection that left.
|
|
46
|
+
* @param connection - The socket peer that disconnected
|
|
47
|
+
*/
|
|
23
48
|
onClientDisconnected(connection: SocketPeer): void;
|
|
49
|
+
/**
|
|
50
|
+
* Initializes signaling from an existing Socket.IO server and attaches connection handler.
|
|
51
|
+
* @param options - Must include io
|
|
52
|
+
* @throws Error if options.io is missing
|
|
53
|
+
*/
|
|
24
54
|
initFromSocketIoServer(options: IRTSeeSignalingOptions): void;
|
|
55
|
+
/**
|
|
56
|
+
* Initializes signaling from an HTTP server: creates Socket.IO server and attaches connection handler.
|
|
57
|
+
* @param options - Must include server and optionally serverOptions
|
|
58
|
+
* @throws Error if Socket.IO server fails to init
|
|
59
|
+
*/
|
|
25
60
|
initFromApplicationServer(options: IRTSeeSignalingOptions): void;
|
|
61
|
+
/**
|
|
62
|
+
* Creates the Socket.IO server from this.server and this.serverOptions.
|
|
63
|
+
*/
|
|
26
64
|
initSocketIo(): void;
|
|
65
|
+
/**
|
|
66
|
+
* Joins the socket to the group room for its peer.
|
|
67
|
+
* @param socket - Socket peer with rtseePeer.clientId
|
|
68
|
+
* @param roomId - Room identifier (logged if clientId is missing)
|
|
69
|
+
*/
|
|
27
70
|
joinGroupRoom(socket: SocketPeer, roomId: string): Promise<void>;
|
|
28
71
|
private onConnected;
|
|
29
72
|
private joinPersonalRoom;
|
|
73
|
+
/**
|
|
74
|
+
* Runs the configured authenticate callback and joins the socket to its personal room on success.
|
|
75
|
+
* @param socket - Socket to authenticate
|
|
76
|
+
* @returns True if authentication succeeded and peer was set
|
|
77
|
+
*/
|
|
30
78
|
applyAuthenticateCallback(socket: SocketPeer): Promise<boolean>;
|
|
31
79
|
private applyDefaultAuthentication;
|
|
32
80
|
private emitAuthResult;
|
|
33
81
|
private getAuthenticateParams;
|
|
82
|
+
/**
|
|
83
|
+
* Returns the number of clients in a Socket.IO room.
|
|
84
|
+
* @param roomName - Room name
|
|
85
|
+
* @returns Client count or 0
|
|
86
|
+
*/
|
|
34
87
|
protected getRoomClientsCount(roomName: string): number;
|
|
88
|
+
/**
|
|
89
|
+
* Builds the call room name for a given id.
|
|
90
|
+
* @param id - Call/room id
|
|
91
|
+
* @returns Room name string
|
|
92
|
+
*/
|
|
35
93
|
static getCallRoomName(id: string): string;
|
|
94
|
+
/**
|
|
95
|
+
* Builds the per-client room name within a call room.
|
|
96
|
+
* @param clientId - Client id
|
|
97
|
+
* @param roomId - Call room id
|
|
98
|
+
* @returns Room name string
|
|
99
|
+
*/
|
|
36
100
|
static getClientRoomName(clientId: string, roomId: string): string;
|
|
101
|
+
/**
|
|
102
|
+
* Sends a signaling event to all clients in a room.
|
|
103
|
+
* @param roomId - Socket.IO room name
|
|
104
|
+
* @param event - Event name and optional JSON-stringified data
|
|
105
|
+
*/
|
|
37
106
|
protected sendToRoom(roomId: string, event: ISignalingEvent): void;
|
|
107
|
+
/**
|
|
108
|
+
* Sends an event to a single client's personal room.
|
|
109
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
110
|
+
* @param eventName - Event name
|
|
111
|
+
* @param data - Event payload
|
|
112
|
+
*/
|
|
38
113
|
protected sendToIndividualRoom(transport: IRTSeeTransport, eventName: string, data: any): void;
|
|
114
|
+
/**
|
|
115
|
+
* Broadcasts a signaling event to a room (excluding the sender).
|
|
116
|
+
* @param socket - Sender socket
|
|
117
|
+
* @param event - Event name and optional data
|
|
118
|
+
* @param room - Room name
|
|
119
|
+
*/
|
|
39
120
|
static broadcast(socket: SocketPeer, event: ISignalingEvent, room: string): void;
|
|
121
|
+
/**
|
|
122
|
+
* JSON-stringifies event data for sending over the wire.
|
|
123
|
+
* @param event - Event with optional data
|
|
124
|
+
* @returns Stringified data or undefined
|
|
125
|
+
*/
|
|
40
126
|
static stringifyEventData(event: ISignalingEvent): string;
|
|
127
|
+
/**
|
|
128
|
+
* Builds the personal room name for a peer.
|
|
129
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
130
|
+
* @returns Room name string
|
|
131
|
+
*/
|
|
41
132
|
static getPersonalRoomName(transport: IRTSeeTransport): string;
|
|
133
|
+
/**
|
|
134
|
+
* Builds the group room name for a peer.
|
|
135
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
136
|
+
* @returns Room name string
|
|
137
|
+
*/
|
|
42
138
|
static getGroupRoomName(transport: IRTSeeTransport): string;
|
|
43
139
|
}
|
|
44
140
|
//# sourceMappingURL=RTSeeSignalingBase.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeSignalingBase.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeSignalingBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAE9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,KAAK,EAAE,eAAe,EAAqC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAQxC,8BAAsB,kBAAmB,SAAQ,YAAY;IAC3D,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjE,kBAAkB,EAAE,6BAA6B,CAAC;IAClD,iBAAiB,EAAE,OAAO,CAAS;IACnC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAS;IAE5B,SAAS,aAAa,OAAO,EAAE,sBAAsB;IA6BrD,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAEnD,6BAA6B;IAqB7B,yBAAyB;IAIzB,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAIxC,oBAAoB,CAAC,UAAU,EAAE,UAAU;IAI3C,sBAAsB,CAAC,OAAO,EAAE,sBAAsB;IAUtD,yBAAyB,CAAC,OAAO,EAAE,sBAAsB;IAUzD,YAAY;
|
|
1
|
+
{"version":3,"file":"RTSeeSignalingBase.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeSignalingBase.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,QAAQ,MAAM,WAAW,CAAC;AAEtC,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,6BAA6B,EAE9B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAC,KAAK,EAAE,eAAe,EAAqC,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAQxC;;;GAGG;AACH,8BAAsB,kBAAmB,SAAQ,YAAY;IAC3D,MAAM,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;IAChD,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC;IACjE,kBAAkB,EAAE,6BAA6B,CAAC;IAClD,iBAAiB,EAAE,OAAO,CAAS;IACnC,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,UAAU,EAAE,OAAO,CAAS;IAE5B;;OAEG;IACH,SAAS,aAAa,OAAO,EAAE,sBAAsB;IA6BrD;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAEnD;;OAEG;IACH,6BAA6B;IAqB7B;;OAEG;IACH,yBAAyB;IAIzB;;;OAGG;IACH,iBAAiB,CAAC,UAAU,EAAE,UAAU;IAIxC;;;OAGG;IACH,oBAAoB,CAAC,UAAU,EAAE,UAAU;IAI3C;;;;OAIG;IACH,sBAAsB,CAAC,OAAO,EAAE,sBAAsB;IAUtD;;;;OAIG;IACH,yBAAyB,CAAC,OAAO,EAAE,sBAAsB;IAUzD;;OAEG;IACH,YAAY;IAIZ;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM;YAWxC,WAAW;YA+BX,gBAAgB;IAW9B;;;;OAIG;IACG,yBAAyB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;YAoBvD,0BAA0B;IAuBxC,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,qBAAqB;IA6D7B;;;;OAIG;IACH,SAAS,CAAC,mBAAmB,CAAC,QAAQ,EAAE,MAAM;IAW9C;;;;OAIG;IACH,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,MAAM;IAIjC;;;;;OAKG;IACH,MAAM,CAAC,iBAAiB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;IAIzD;;;;OAIG;IACH,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe;IAY3D;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAC5B,SAAS,EAAE,eAAe,EAC1B,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,GAAG;IAOX;;;;;OAKG;IACH,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,MAAM;IAYzE;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,eAAe;IAWhD;;;;OAIG;IACH,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,eAAe;IAIrD;;;;OAIG;IACH,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,eAAe;CAGnD"}
|
|
@@ -53,7 +53,14 @@ const PERSONAL_SUFFIX = "personal";
|
|
|
53
53
|
const GROUP_SUFFIX = "group";
|
|
54
54
|
const callRoomPrefix = "callRoom";
|
|
55
55
|
const clientRoomPrefix = "clientRoom";
|
|
56
|
+
/**
|
|
57
|
+
* Base class for RTSEE signaling servers. Handles Socket.IO server setup,
|
|
58
|
+
* authentication, connection manager and room helpers.
|
|
59
|
+
*/
|
|
56
60
|
class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
61
|
+
/**
|
|
62
|
+
* @param options - Signaling options (io, server, authenticate, connectionsManager, etc.)
|
|
63
|
+
*/
|
|
57
64
|
constructor(options) {
|
|
58
65
|
super();
|
|
59
66
|
this.initializedFromIo = false;
|
|
@@ -78,6 +85,9 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
78
85
|
options.connectionsManager || new signaling_1.RTSeeSocketConnectionsManager();
|
|
79
86
|
this.attachConnectionManagerEvents();
|
|
80
87
|
}
|
|
88
|
+
/**
|
|
89
|
+
* Subscribes to connection manager events and re-emits them on this instance.
|
|
90
|
+
*/
|
|
81
91
|
attachConnectionManagerEvents() {
|
|
82
92
|
this.connectionsManager.on(signaling_1.SocketConnectionsManagerEvents.CONNECTIONS_COUNT_CHANGED, () => {
|
|
83
93
|
this.onConnectionsCountChanged();
|
|
@@ -89,15 +99,31 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
89
99
|
this.onClientDisconnected(connection);
|
|
90
100
|
});
|
|
91
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Emits CONNECTIONS_COUNT_CHANGED when the number of connections changes.
|
|
104
|
+
*/
|
|
92
105
|
onConnectionsCountChanged() {
|
|
93
106
|
this.emit(signaling_1.SocketConnectionsManagerEvents.CONNECTIONS_COUNT_CHANGED);
|
|
94
107
|
}
|
|
108
|
+
/**
|
|
109
|
+
* Emits CLIENT_CONNECTED with the new connection.
|
|
110
|
+
* @param connection - The socket peer that connected
|
|
111
|
+
*/
|
|
95
112
|
onClientConnected(connection) {
|
|
96
113
|
this.emit(signaling_1.SocketConnectionsManagerEvents.CLIENT_CONNECTED, connection);
|
|
97
114
|
}
|
|
115
|
+
/**
|
|
116
|
+
* Emits CLIENT_DISCONNECTED with the connection that left.
|
|
117
|
+
* @param connection - The socket peer that disconnected
|
|
118
|
+
*/
|
|
98
119
|
onClientDisconnected(connection) {
|
|
99
120
|
this.emit(signaling_1.SocketConnectionsManagerEvents.CLIENT_DISCONNECTED, connection);
|
|
100
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Initializes signaling from an existing Socket.IO server and attaches connection handler.
|
|
124
|
+
* @param options - Must include io
|
|
125
|
+
* @throws Error if options.io is missing
|
|
126
|
+
*/
|
|
101
127
|
initFromSocketIoServer(options) {
|
|
102
128
|
if (!options.io) {
|
|
103
129
|
throw new Error("io_not_provided");
|
|
@@ -107,6 +133,11 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
107
133
|
void this.onConnected(socket);
|
|
108
134
|
});
|
|
109
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Initializes signaling from an HTTP server: creates Socket.IO server and attaches connection handler.
|
|
138
|
+
* @param options - Must include server and optionally serverOptions
|
|
139
|
+
* @throws Error if Socket.IO server fails to init
|
|
140
|
+
*/
|
|
110
141
|
initFromApplicationServer(options) {
|
|
111
142
|
this.server = options.server;
|
|
112
143
|
this.serverOptions = options.serverOptions;
|
|
@@ -116,9 +147,17 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
116
147
|
}
|
|
117
148
|
this.initFromSocketIoServer({ io: this.io });
|
|
118
149
|
}
|
|
150
|
+
/**
|
|
151
|
+
* Creates the Socket.IO server from this.server and this.serverOptions.
|
|
152
|
+
*/
|
|
119
153
|
initSocketIo() {
|
|
120
154
|
this.io = new SocketIO.Server(this.server, this.serverOptions);
|
|
121
155
|
}
|
|
156
|
+
/**
|
|
157
|
+
* Joins the socket to the group room for its peer.
|
|
158
|
+
* @param socket - Socket peer with rtseePeer.clientId
|
|
159
|
+
* @param roomId - Room identifier (logged if clientId is missing)
|
|
160
|
+
*/
|
|
122
161
|
joinGroupRoom(socket, roomId) {
|
|
123
162
|
return __awaiter(this, void 0, void 0, function* () {
|
|
124
163
|
if (!socket.rtseePeer || !socket.rtseePeer.clientId) {
|
|
@@ -169,6 +208,11 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
169
208
|
yield socket.join(roomName);
|
|
170
209
|
});
|
|
171
210
|
}
|
|
211
|
+
/**
|
|
212
|
+
* Runs the configured authenticate callback and joins the socket to its personal room on success.
|
|
213
|
+
* @param socket - Socket to authenticate
|
|
214
|
+
* @returns True if authentication succeeded and peer was set
|
|
215
|
+
*/
|
|
172
216
|
applyAuthenticateCallback(socket) {
|
|
173
217
|
return __awaiter(this, void 0, void 0, function* () {
|
|
174
218
|
const authParams = this.getAuthenticateParams(socket);
|
|
@@ -264,6 +308,11 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
264
308
|
}
|
|
265
309
|
return authParams;
|
|
266
310
|
}
|
|
311
|
+
/**
|
|
312
|
+
* Returns the number of clients in a Socket.IO room.
|
|
313
|
+
* @param roomName - Room name
|
|
314
|
+
* @returns Client count or 0
|
|
315
|
+
*/
|
|
267
316
|
getRoomClientsCount(roomName) {
|
|
268
317
|
if (!this.io) {
|
|
269
318
|
return 0;
|
|
@@ -274,12 +323,28 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
274
323
|
}
|
|
275
324
|
return room.size || 0;
|
|
276
325
|
}
|
|
326
|
+
/**
|
|
327
|
+
* Builds the call room name for a given id.
|
|
328
|
+
* @param id - Call/room id
|
|
329
|
+
* @returns Room name string
|
|
330
|
+
*/
|
|
277
331
|
static getCallRoomName(id) {
|
|
278
332
|
return callRoomPrefix + id;
|
|
279
333
|
}
|
|
334
|
+
/**
|
|
335
|
+
* Builds the per-client room name within a call room.
|
|
336
|
+
* @param clientId - Client id
|
|
337
|
+
* @param roomId - Call room id
|
|
338
|
+
* @returns Room name string
|
|
339
|
+
*/
|
|
280
340
|
static getClientRoomName(clientId, roomId) {
|
|
281
341
|
return callRoomPrefix + roomId + clientRoomPrefix + clientId;
|
|
282
342
|
}
|
|
343
|
+
/**
|
|
344
|
+
* Sends a signaling event to all clients in a room.
|
|
345
|
+
* @param roomId - Socket.IO room name
|
|
346
|
+
* @param event - Event name and optional JSON-stringified data
|
|
347
|
+
*/
|
|
283
348
|
sendToRoom(roomId, event) {
|
|
284
349
|
var _a, _b;
|
|
285
350
|
if (event.data) {
|
|
@@ -293,10 +358,22 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
293
358
|
(_b = this.io) === null || _b === void 0 ? void 0 : _b.to(roomId).emit(event.name);
|
|
294
359
|
}
|
|
295
360
|
}
|
|
361
|
+
/**
|
|
362
|
+
* Sends an event to a single client's personal room.
|
|
363
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
364
|
+
* @param eventName - Event name
|
|
365
|
+
* @param data - Event payload
|
|
366
|
+
*/
|
|
296
367
|
sendToIndividualRoom(transport, eventName, data) {
|
|
297
368
|
var _a;
|
|
298
369
|
(_a = this.io) === null || _a === void 0 ? void 0 : _a.to(RTSeeSignalingBase.getPersonalRoomName(transport)).emit(eventName, data);
|
|
299
370
|
}
|
|
371
|
+
/**
|
|
372
|
+
* Broadcasts a signaling event to a room (excluding the sender).
|
|
373
|
+
* @param socket - Sender socket
|
|
374
|
+
* @param event - Event name and optional data
|
|
375
|
+
* @param room - Room name
|
|
376
|
+
*/
|
|
300
377
|
static broadcast(socket, event, room) {
|
|
301
378
|
if (event.data) {
|
|
302
379
|
const eventDataString = RTSeeSignalingBase.stringifyEventData(event);
|
|
@@ -309,6 +386,11 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
309
386
|
socket.broadcast.to(room).emit(event.name);
|
|
310
387
|
}
|
|
311
388
|
}
|
|
389
|
+
/**
|
|
390
|
+
* JSON-stringifies event data for sending over the wire.
|
|
391
|
+
* @param event - Event with optional data
|
|
392
|
+
* @returns Stringified data or undefined
|
|
393
|
+
*/
|
|
312
394
|
static stringifyEventData(event) {
|
|
313
395
|
if (event.data) {
|
|
314
396
|
try {
|
|
@@ -320,9 +402,19 @@ class RTSeeSignalingBase extends events_1.EventEmitter {
|
|
|
320
402
|
}
|
|
321
403
|
}
|
|
322
404
|
}
|
|
405
|
+
/**
|
|
406
|
+
* Builds the personal room name for a peer.
|
|
407
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
408
|
+
* @returns Room name string
|
|
409
|
+
*/
|
|
323
410
|
static getPersonalRoomName(transport) {
|
|
324
411
|
return `${RTSEE_PREFIX}-${transport.peer.rtseeAppId}-${PERSONAL_SUFFIX}-${transport.peer.clientId}`;
|
|
325
412
|
}
|
|
413
|
+
/**
|
|
414
|
+
* Builds the group room name for a peer.
|
|
415
|
+
* @param transport - Transport with peer (clientId, rtseeAppId)
|
|
416
|
+
* @returns Room name string
|
|
417
|
+
*/
|
|
326
418
|
static getGroupRoomName(transport) {
|
|
327
419
|
return `${RTSEE_PREFIX}-${transport.peer.rtseeAppId}-${GROUP_SUFFIX}-${transport.peer.clientId};`;
|
|
328
420
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeSignalingBase.js","sourceRoot":"","sources":["../../../../src/models/RTSeeSignalingBase.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,oDAAsC;AACtC,+BAAoC;AACpC,gDAK0B;AAI1B,mCAAsC;AACtC,sCAAuF;AAGvF,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,eAAe,GAAG,UAAU,CAAC;AACnC,MAAM,YAAY,GAAG,OAAO,CAAC;AAC7B,MAAM,cAAc,GAAG,UAAU,CAAC;AAClC,MAAM,gBAAgB,GAAG,YAAY,CAAC;AAEtC,MAAsB,kBAAmB,SAAQ,qBAAY;IAU3D,YAAsB,OAA+B;QACnD,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RTSeeSignalingBase.js","sourceRoot":"","sources":["../../../../src/models/RTSeeSignalingBase.ts"],"names":[],"mappings":"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"}
|
|
@@ -8,18 +8,50 @@ export declare enum SocketConnectionsManagerEvents {
|
|
|
8
8
|
CLIENT_CONNECTED = "rtsee_client_connected",
|
|
9
9
|
CLIENT_DISCONNECTED = "rtsee_client_disconnected"
|
|
10
10
|
}
|
|
11
|
+
/**
|
|
12
|
+
* Tracks active socket connections and emits connection/disconnection events.
|
|
13
|
+
* Optionally uses Redis for persistence.
|
|
14
|
+
*/
|
|
11
15
|
export declare class RTSeeSocketConnectionsManager extends EventEmitter {
|
|
12
16
|
connections: SocketPeer[];
|
|
13
17
|
redisClient?: RedisClientType;
|
|
14
18
|
redisOM: Client;
|
|
19
|
+
/**
|
|
20
|
+
* @param options - Optional redisClient for RedisOM
|
|
21
|
+
*/
|
|
15
22
|
constructor(options?: {
|
|
16
23
|
redisClient?: RedisClientType;
|
|
17
24
|
});
|
|
25
|
+
/**
|
|
26
|
+
* Attaches the Redis client to RedisOM for use. Logs success or failure.
|
|
27
|
+
*/
|
|
18
28
|
attachRedisClient(): Promise<void>;
|
|
29
|
+
/**
|
|
30
|
+
* Subscribes to disconnect on the connection so it is removed when it disconnects.
|
|
31
|
+
* @param connection - Socket peer to attach handlers to
|
|
32
|
+
*/
|
|
19
33
|
attachEventHandlers(connection: SocketPeer): void;
|
|
34
|
+
/**
|
|
35
|
+
* Adds a connection to the list and emits CLIENT_CONNECTED and CONNECTIONS_COUNT_CHANGED.
|
|
36
|
+
* @param connection - Socket peer to add
|
|
37
|
+
*/
|
|
20
38
|
add(connection: SocketPeer): void;
|
|
39
|
+
/**
|
|
40
|
+
* Removes a connection from the list and emits CLIENT_DISCONNECTED and CONNECTIONS_COUNT_CHANGED.
|
|
41
|
+
* @param connection - Socket peer to remove
|
|
42
|
+
*/
|
|
21
43
|
remove(connection: SocketPeer): void;
|
|
44
|
+
/**
|
|
45
|
+
* Returns the peer for a given client id if found in active connections.
|
|
46
|
+
* @param id - Client id
|
|
47
|
+
* @returns Peer or null
|
|
48
|
+
*/
|
|
22
49
|
getPeerByClientId(id: string): IPeer | null;
|
|
50
|
+
/**
|
|
51
|
+
* Returns peers for all given client ids that are in active connections.
|
|
52
|
+
* @param ids - List of client ids
|
|
53
|
+
* @returns Array of peers (only those found)
|
|
54
|
+
*/
|
|
23
55
|
getPeerByClientIdsList(ids: string[]): IPeer<any>[];
|
|
24
56
|
private getSocketDisconnectedHandler;
|
|
25
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeSocketConnectionsManager.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeSocketConnectionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,oBAAY,8BAA8B;IACxC,yBAAyB,oCAAoC;IAC7D,gBAAgB,2BAA2B;IAC3C,mBAAmB,8BAA8B;CAClD;AAED,qBAAa,6BAA8B,SAAQ,YAAY;IAC7D,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"RTSeeSocketConnectionsManager.d.ts","sourceRoot":"","sources":["../../../../src/models/RTSeeSocketConnectionsManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAEpC,oBAAY,8BAA8B;IACxC,yBAAyB,oCAAoC;IAC7D,gBAAgB,2BAA2B;IAC3C,mBAAmB,8BAA8B;CAClD;AAED;;;GAGG;AACH,qBAAa,6BAA8B,SAAQ,YAAY;IAC7D,WAAW,EAAE,UAAU,EAAE,CAAM;IAC/B,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;IAEhB;;OAEG;gBACS,OAAO,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,eAAe,CAAA;KAAE;IASvD;;OAEG;IACG,iBAAiB;IASvB;;;OAGG;IACH,mBAAmB,CAAC,UAAU,EAAE,UAAU;IAI1C;;;OAGG;IACH,GAAG,CAAC,UAAU,EAAE,UAAU;IAO1B;;;OAGG;IACH,MAAM,CAAC,UAAU,EAAE,UAAU;IAU7B;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,IAAI;IAU3C;;;;OAIG;IACH,sBAAsB,CAAC,GAAG,EAAE,MAAM,EAAE;IAWpC,OAAO,CAAC,4BAA4B;CAKrC"}
|
|
@@ -18,7 +18,14 @@ var SocketConnectionsManagerEvents;
|
|
|
18
18
|
SocketConnectionsManagerEvents["CLIENT_CONNECTED"] = "rtsee_client_connected";
|
|
19
19
|
SocketConnectionsManagerEvents["CLIENT_DISCONNECTED"] = "rtsee_client_disconnected";
|
|
20
20
|
})(SocketConnectionsManagerEvents || (exports.SocketConnectionsManagerEvents = SocketConnectionsManagerEvents = {}));
|
|
21
|
+
/**
|
|
22
|
+
* Tracks active socket connections and emits connection/disconnection events.
|
|
23
|
+
* Optionally uses Redis for persistence.
|
|
24
|
+
*/
|
|
21
25
|
class RTSeeSocketConnectionsManager extends events_1.EventEmitter {
|
|
26
|
+
/**
|
|
27
|
+
* @param options - Optional redisClient for RedisOM
|
|
28
|
+
*/
|
|
22
29
|
constructor(options) {
|
|
23
30
|
super();
|
|
24
31
|
this.connections = [];
|
|
@@ -28,6 +35,9 @@ class RTSeeSocketConnectionsManager extends events_1.EventEmitter {
|
|
|
28
35
|
void this.attachRedisClient();
|
|
29
36
|
}
|
|
30
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Attaches the Redis client to RedisOM for use. Logs success or failure.
|
|
40
|
+
*/
|
|
31
41
|
attachRedisClient() {
|
|
32
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
33
43
|
try {
|
|
@@ -39,21 +49,38 @@ class RTSeeSocketConnectionsManager extends events_1.EventEmitter {
|
|
|
39
49
|
}
|
|
40
50
|
});
|
|
41
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Subscribes to disconnect on the connection so it is removed when it disconnects.
|
|
54
|
+
* @param connection - Socket peer to attach handlers to
|
|
55
|
+
*/
|
|
42
56
|
attachEventHandlers(connection) {
|
|
43
57
|
connection.on("disconnect", this.getSocketDisconnectedHandler(connection));
|
|
44
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Adds a connection to the list and emits CLIENT_CONNECTED and CONNECTIONS_COUNT_CHANGED.
|
|
61
|
+
* @param connection - Socket peer to add
|
|
62
|
+
*/
|
|
45
63
|
add(connection) {
|
|
46
64
|
this.connections.push(connection);
|
|
47
65
|
this.attachEventHandlers(connection);
|
|
48
66
|
this.emit(SocketConnectionsManagerEvents["CONNECTIONS_COUNT_CHANGED"]);
|
|
49
67
|
this.emit(SocketConnectionsManagerEvents["CLIENT_CONNECTED"], connection);
|
|
50
68
|
}
|
|
69
|
+
/**
|
|
70
|
+
* Removes a connection from the list and emits CLIENT_DISCONNECTED and CONNECTIONS_COUNT_CHANGED.
|
|
71
|
+
* @param connection - Socket peer to remove
|
|
72
|
+
*/
|
|
51
73
|
remove(connection) {
|
|
52
74
|
const index = this.connections.indexOf(connection);
|
|
53
75
|
this.connections.splice(index, 1);
|
|
54
76
|
this.emit(SocketConnectionsManagerEvents["CONNECTIONS_COUNT_CHANGED"]);
|
|
55
77
|
this.emit(SocketConnectionsManagerEvents["CLIENT_DISCONNECTED"], connection);
|
|
56
78
|
}
|
|
79
|
+
/**
|
|
80
|
+
* Returns the peer for a given client id if found in active connections.
|
|
81
|
+
* @param id - Client id
|
|
82
|
+
* @returns Peer or null
|
|
83
|
+
*/
|
|
57
84
|
getPeerByClientId(id) {
|
|
58
85
|
const connection = this.connections.find((e) => { var _a; return ((_a = e.rtseePeer) === null || _a === void 0 ? void 0 : _a.clientId) === id; });
|
|
59
86
|
if (!(connection === null || connection === void 0 ? void 0 : connection.rtseePeer)) {
|
|
@@ -61,6 +88,11 @@ class RTSeeSocketConnectionsManager extends events_1.EventEmitter {
|
|
|
61
88
|
}
|
|
62
89
|
return connection.rtseePeer;
|
|
63
90
|
}
|
|
91
|
+
/**
|
|
92
|
+
* Returns peers for all given client ids that are in active connections.
|
|
93
|
+
* @param ids - List of client ids
|
|
94
|
+
* @returns Array of peers (only those found)
|
|
95
|
+
*/
|
|
64
96
|
getPeerByClientIdsList(ids) {
|
|
65
97
|
const peers = [];
|
|
66
98
|
ids.forEach((e) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RTSeeSocketConnectionsManager.js","sourceRoot":"","sources":["../../../../src/models/RTSeeSocketConnectionsManager.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,mCAAsC;AAEtC,uCAAkC;AAGlC,IAAY,8BAIX;AAJD,WAAY,8BAA8B;IACxC,+FAA6D,CAAA;IAC7D,6EAA2C,CAAA;IAC3C,mFAAiD,CAAA;AACnD,CAAC,EAJW,8BAA8B,8CAA9B,8BAA8B,QAIzC;AAED,MAAa,6BAA8B,SAAQ,qBAAY;IAK7D,YAAY,OAA2C;QACrD,KAAK,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"RTSeeSocketConnectionsManager.js","sourceRoot":"","sources":["../../../../src/models/RTSeeSocketConnectionsManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Socket } from "socket.io";
|
|
2
2
|
import { IPeer } from "@rtsee/core";
|
|
3
|
+
/**
|
|
4
|
+
* Socket.IO socket extended with RTSEE peer and session id. Used on the server for each client connection.
|
|
5
|
+
*/
|
|
3
6
|
export declare class SocketPeer extends Socket {
|
|
4
7
|
rtseePeerPromise?: Promise<IPeer>;
|
|
5
8
|
rtseePeerPromiseResolve?: (value: IPeer | PromiseLike<IPeer>) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketPeer.d.ts","sourceRoot":"","sources":["../../../../src/models/SocketPeer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC,qBAAa,UAAW,SAAQ,MAAM;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,EAAE,MAAM,CAAY;CAC9B"}
|
|
1
|
+
{"version":3,"file":"SocketPeer.d.ts","sourceRoot":"","sources":["../../../../src/models/SocketPeer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACnC,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGpC;;GAEG;AACH,qBAAa,UAAW,SAAQ,MAAM;IACpC,gBAAgB,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IAClC,uBAAuB,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC;IACtE,SAAS,CAAC,EAAE,KAAK,CAAC;IAClB,SAAS,EAAE,MAAM,CAAY;CAC9B"}
|
|
@@ -3,6 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.SocketPeer = void 0;
|
|
4
4
|
const socket_io_1 = require("socket.io");
|
|
5
5
|
const uuid_1 = require("uuid");
|
|
6
|
+
/**
|
|
7
|
+
* Socket.IO socket extended with RTSEE peer and session id. Used on the server for each client connection.
|
|
8
|
+
*/
|
|
6
9
|
class SocketPeer extends socket_io_1.Socket {
|
|
7
10
|
constructor() {
|
|
8
11
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SocketPeer.js","sourceRoot":"","sources":["../../../../src/models/SocketPeer.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AAEnC,+BAAoC;AAEpC,MAAa,UAAW,SAAQ,kBAAM;IAAtC;;QAIE,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;IAC/B,CAAC;CAAA;AALD,gCAKC"}
|
|
1
|
+
{"version":3,"file":"SocketPeer.js","sourceRoot":"","sources":["../../../../src/models/SocketPeer.ts"],"names":[],"mappings":";;;AAAA,yCAAmC;AAEnC,+BAAoC;AAEpC;;GAEG;AACH,MAAa,UAAW,SAAQ,kBAAM;IAAtC;;QAIE,cAAS,GAAW,IAAA,SAAM,GAAE,CAAC;IAC/B,CAAC;CAAA;AALD,gCAKC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rtsee/signaling",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.88",
|
|
4
4
|
"license": "ISC",
|
|
5
5
|
"private": false,
|
|
6
6
|
"main": "dist/signaling/src/index",
|
|
@@ -51,5 +51,5 @@
|
|
|
51
51
|
"publishConfig": {
|
|
52
52
|
"access": "public"
|
|
53
53
|
},
|
|
54
|
-
"gitHead": "
|
|
54
|
+
"gitHead": "987226a7d8a6036985835f65b78ce38b4601e495"
|
|
55
55
|
}
|