vani-meeting-server 2.6.2 → 2.6.5
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/lib/sfu/SFUEachRoomUserHandler.js +22 -4
- package/lib/sfu/SFUHandler.d.ts +1 -0
- package/lib/sfu/SFUHandler.js +10 -1
- package/lib/websocket/EachSocketConnectionHandler.d.ts +4 -4
- package/lib/websocket/EachSocketConnectionHandler.js +6 -2
- package/package.json +3 -3
- package/lib/websocket/SSEHandler.d.ts +0 -3
- package/lib/websocket/SSEHandler.js +0 -18
|
@@ -52,6 +52,10 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
52
52
|
this.createWebrtcSendTransport(this.selfParticipant);
|
|
53
53
|
this.createWebrtcRecieveTransport(this.selfParticipant);
|
|
54
54
|
}
|
|
55
|
+
else if (payload.type === EachSocketConnectionHandler_1.SFUMessageType.OnCreateTransportsForcefully) {
|
|
56
|
+
this.createWebrtcSendTransport(this.selfParticipant, true);
|
|
57
|
+
this.createWebrtcRecieveTransport(this.selfParticipant, true);
|
|
58
|
+
}
|
|
55
59
|
else if (payload.type === EachSocketConnectionHandler_1.SFUMessageType.OnTransportConnect) {
|
|
56
60
|
this.connectTransport(payload);
|
|
57
61
|
}
|
|
@@ -169,7 +173,6 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
169
173
|
const errorPayload = { message: "Consumer not found while trying to resume - resumeConsumer - SFUEachRoomUserHandler" };
|
|
170
174
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
171
175
|
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" resumeConsumer : Consumer not found ");
|
|
172
|
-
this.redisBroadcastMessageToTopic(this.selfParticipant.userId, this.preapreClientMessageBody(true, this.selfParticipant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnConsumerNotFound, { consumerId: consumerId })));
|
|
173
176
|
}
|
|
174
177
|
}
|
|
175
178
|
}
|
|
@@ -252,7 +255,6 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
252
255
|
if (producer.closed === false) {
|
|
253
256
|
await this.roomHandlerDataSource.pipeToRoute(producer);
|
|
254
257
|
this.producers.push(producer);
|
|
255
|
-
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(this.producers);
|
|
256
258
|
this.roomHandlerDataSource.onNewProducer(producer, this.selfParticipant);
|
|
257
259
|
this.redisBroadcastMessageToTopic(Utility_1.Utility.getTopicForRoomIdAndIp(this.selfParticipant.roomId, (await Constant_1.default.getPublicIp())), this.preapreClientMessageBody(false, this.selfParticipant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnNewProducer, { producer: { id: producer.id, appData: producer.appData } })));
|
|
258
260
|
}
|
|
@@ -282,7 +284,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
282
284
|
}
|
|
283
285
|
}
|
|
284
286
|
}
|
|
285
|
-
async createWebrtcSendTransport(participant) {
|
|
287
|
+
async createWebrtcSendTransport(participant, isForcefully = false) {
|
|
286
288
|
if (!this.sendRouter) {
|
|
287
289
|
const errorPayload = { message: "No Send router found - createWebrtcSendTransport - SFUEachRoomUserHandler", extraData: participant };
|
|
288
290
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
@@ -290,6 +292,14 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
290
292
|
return;
|
|
291
293
|
}
|
|
292
294
|
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport");
|
|
295
|
+
try {
|
|
296
|
+
if (isForcefully && this.webrtcSendTransport) {
|
|
297
|
+
this.webrtcSendTransport.close();
|
|
298
|
+
this.webrtcSendTransport = undefined;
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
catch (err) {
|
|
302
|
+
}
|
|
293
303
|
if (!this.webrtcSendTransport || this.webrtcSendTransport.closed) {
|
|
294
304
|
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport started");
|
|
295
305
|
this.webrtcSendTransport = await this.sendRouter?.createWebRtcTransport(await Constant_1.default.webrtcTransportConfiguration(this.roomHandlerDataSource.getConnectionProtocolType()));
|
|
@@ -327,13 +337,21 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
327
337
|
this.redisBroadcastMessageToTopic(participant.userId, this.preapreClientMessageBody(true, participant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnSendTransport, { transport: transportOptionForClient })));
|
|
328
338
|
}
|
|
329
339
|
}
|
|
330
|
-
async createWebrtcRecieveTransport(participant) {
|
|
340
|
+
async createWebrtcRecieveTransport(participant, isForcefully = false) {
|
|
331
341
|
if (!this.recvRouter) {
|
|
332
342
|
const errorPayload = { message: "Recv Router not found - createWebrtcRecieveTransport - SFUEachRoomUserHandler", extraData: participant };
|
|
333
343
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
334
344
|
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcRecieveTransport no recieve router found ", participant.roomId);
|
|
335
345
|
return;
|
|
336
346
|
}
|
|
347
|
+
try {
|
|
348
|
+
if (isForcefully && this.webrtcRecieveTransport) {
|
|
349
|
+
this.webrtcRecieveTransport.close();
|
|
350
|
+
this.webrtcRecieveTransport = undefined;
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch (err) {
|
|
354
|
+
}
|
|
337
355
|
if (!this.webrtcRecieveTransport || this.webrtcRecieveTransport.closed) {
|
|
338
356
|
const router = this.recvRouter ? this.recvRouter : this.sendRouter;
|
|
339
357
|
this.webrtcRecieveTransport = await router?.createWebRtcTransport(await Constant_1.default.webrtcTransportConfiguration(this.roomHandlerDataSource.getConnectionProtocolType()));
|
package/lib/sfu/SFUHandler.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export declare class SFUHandler {
|
|
|
9
9
|
constructor();
|
|
10
10
|
isSFURunning: () => boolean;
|
|
11
11
|
init(): Promise<void>;
|
|
12
|
+
private getWorkers;
|
|
12
13
|
checkAndSetupRoom(roomId: string, connectionProtocol: ConnectionProtocol): Promise<void>;
|
|
13
14
|
checkIfCanCloseRoom(roomId: string): Promise<void>;
|
|
14
15
|
getRoomSFUHandler(roomId: string): SFUEachRoomHandler | undefined;
|
package/lib/sfu/SFUHandler.js
CHANGED
|
@@ -60,10 +60,19 @@ class SFUHandler {
|
|
|
60
60
|
async init() {
|
|
61
61
|
await this.createWorkers();
|
|
62
62
|
}
|
|
63
|
+
getWorkers = async () => {
|
|
64
|
+
if (this.workers && this.workers.length > 0) {
|
|
65
|
+
return this.workers;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
await this.init();
|
|
69
|
+
return this.workers;
|
|
70
|
+
}
|
|
71
|
+
};
|
|
63
72
|
async checkAndSetupRoom(roomId, connectionProtocol) {
|
|
64
73
|
if (this.sfuRooms.has(roomId) === false) {
|
|
65
74
|
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("On New Room");
|
|
66
|
-
const sfuEachRoomHandler = new SFUEachRoomHandler_1.SFUEachRoomHandler(roomId, this.
|
|
75
|
+
const sfuEachRoomHandler = new SFUEachRoomHandler_1.SFUEachRoomHandler(roomId, (await this.getWorkers()), (this.sfuRooms.size % (await this.getWorkers()).length), connectionProtocol);
|
|
67
76
|
this.sfuRooms.set(roomId, sfuEachRoomHandler);
|
|
68
77
|
}
|
|
69
78
|
}
|
|
@@ -38,6 +38,7 @@ export declare enum SFUMessageType {
|
|
|
38
38
|
OnRouterRtpCapabilities = "onRouterRtpCapabilities",
|
|
39
39
|
OnTransportConnect = "transportConnect",
|
|
40
40
|
OnCreateTransports = "createTransports",
|
|
41
|
+
OnCreateTransportsForcefully = "OnCreateTransportsForcefully",
|
|
41
42
|
OnTransportConnectDone = "transportConnectDone",
|
|
42
43
|
OnSendTransport = "onSendTransport",
|
|
43
44
|
OnConsumeTransport = "onConsumeTransport",
|
|
@@ -48,12 +49,10 @@ export declare enum SFUMessageType {
|
|
|
48
49
|
OnProducerClosed = "producerClosed",
|
|
49
50
|
OnPauseProducer = "pauseProducer",
|
|
50
51
|
OnResumeProducer = "resumeProducer",
|
|
51
|
-
OnProducerNotFound = "OnProducerNotFound",
|
|
52
52
|
OnNewProducer = "onNewProducer",
|
|
53
53
|
ConsumeProductId = "consumeProductId",
|
|
54
54
|
OnServerConsumer = "onServerConsumer",
|
|
55
55
|
ResumeConsumer = "resumeConsumer",
|
|
56
|
-
OnConsumerNotFound = "OnConsumerNotFound",
|
|
57
56
|
PauseConsumer = "pauseConsumer",
|
|
58
57
|
OnProduceSyncDone = "produceSyncDone",
|
|
59
58
|
OnSpeakerChanged = "onSpeakerChanged",
|
|
@@ -65,7 +64,8 @@ export declare enum SFUMessageType {
|
|
|
65
64
|
OnTransportNotFound = "onTransportNotFound",
|
|
66
65
|
GetAllProducers = "getAllProducers",
|
|
67
66
|
OnAllProducers = "onAllProducers",
|
|
68
|
-
OnStopProducer = "stopProducer"
|
|
67
|
+
OnStopProducer = "stopProducer",
|
|
68
|
+
OnProducerNotFound = "OnProducerNotFound"
|
|
69
69
|
}
|
|
70
70
|
export declare enum MultiSystemEvents {
|
|
71
71
|
OnNewServerJoinedForRoom = "OnNewServerJoinedForRoom",
|
|
@@ -81,7 +81,7 @@ export declare enum LocalMessageType {
|
|
|
81
81
|
SocketMessage = "socketMessage",
|
|
82
82
|
SelfLeftForceFully = "SelfLeftForceFully"
|
|
83
83
|
}
|
|
84
|
-
export
|
|
84
|
+
export type WebSocketEvents = SFUMessageType | WebSocketBasicEvents | LocalMessageType | MultiSystemEvents;
|
|
85
85
|
export interface WebSocketMessageBody {
|
|
86
86
|
interfaceName: 'WebSocketMessageBody';
|
|
87
87
|
type: WebSocketEvents;
|
|
@@ -55,6 +55,7 @@ var SFUMessageType;
|
|
|
55
55
|
SFUMessageType["OnRouterRtpCapabilities"] = "onRouterRtpCapabilities";
|
|
56
56
|
SFUMessageType["OnTransportConnect"] = "transportConnect";
|
|
57
57
|
SFUMessageType["OnCreateTransports"] = "createTransports";
|
|
58
|
+
SFUMessageType["OnCreateTransportsForcefully"] = "OnCreateTransportsForcefully";
|
|
58
59
|
SFUMessageType["OnTransportConnectDone"] = "transportConnectDone";
|
|
59
60
|
SFUMessageType["OnSendTransport"] = "onSendTransport";
|
|
60
61
|
SFUMessageType["OnConsumeTransport"] = "onConsumeTransport";
|
|
@@ -65,12 +66,10 @@ var SFUMessageType;
|
|
|
65
66
|
SFUMessageType["OnProducerClosed"] = "producerClosed";
|
|
66
67
|
SFUMessageType["OnPauseProducer"] = "pauseProducer";
|
|
67
68
|
SFUMessageType["OnResumeProducer"] = "resumeProducer";
|
|
68
|
-
SFUMessageType["OnProducerNotFound"] = "OnProducerNotFound";
|
|
69
69
|
SFUMessageType["OnNewProducer"] = "onNewProducer";
|
|
70
70
|
SFUMessageType["ConsumeProductId"] = "consumeProductId";
|
|
71
71
|
SFUMessageType["OnServerConsumer"] = "onServerConsumer";
|
|
72
72
|
SFUMessageType["ResumeConsumer"] = "resumeConsumer";
|
|
73
|
-
SFUMessageType["OnConsumerNotFound"] = "OnConsumerNotFound";
|
|
74
73
|
SFUMessageType["PauseConsumer"] = "pauseConsumer";
|
|
75
74
|
SFUMessageType["OnProduceSyncDone"] = "produceSyncDone";
|
|
76
75
|
SFUMessageType["OnSpeakerChanged"] = "onSpeakerChanged";
|
|
@@ -83,6 +82,11 @@ var SFUMessageType;
|
|
|
83
82
|
SFUMessageType["GetAllProducers"] = "getAllProducers";
|
|
84
83
|
SFUMessageType["OnAllProducers"] = "onAllProducers";
|
|
85
84
|
SFUMessageType["OnStopProducer"] = "stopProducer";
|
|
85
|
+
// },
|
|
86
|
+
// socket
|
|
87
|
+
// );
|
|
88
|
+
// }
|
|
89
|
+
SFUMessageType["OnProducerNotFound"] = "OnProducerNotFound";
|
|
86
90
|
})(SFUMessageType = exports.SFUMessageType || (exports.SFUMessageType = {}));
|
|
87
91
|
var MultiSystemEvents;
|
|
88
92
|
(function (MultiSystemEvents) {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vani-meeting-server",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.5",
|
|
4
4
|
"description": "Vani Meeting Server SDK",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -31,9 +31,9 @@
|
|
|
31
31
|
"dotenv": "^16.0.2",
|
|
32
32
|
"express": "^4.18.1",
|
|
33
33
|
"helmet": "^6.0.0",
|
|
34
|
-
"mediasoup": "^3.14.
|
|
34
|
+
"mediasoup": "^3.14.11",
|
|
35
35
|
"public-ip": "4.0.3",
|
|
36
|
-
"typescript": "^
|
|
36
|
+
"typescript": "^5.6.2",
|
|
37
37
|
"uuid": "^9.0.0",
|
|
38
38
|
"ws": "^8.9.0"
|
|
39
39
|
},
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SSEHandler = void 0;
|
|
4
|
-
const ServerHandler_1 = require("../ServerHandler");
|
|
5
|
-
class SSEHandler {
|
|
6
|
-
constructor() {
|
|
7
|
-
if (ServerHandler_1.ServerHandler.getInstance().serverStartRequest.wssServerCertificateOption) {
|
|
8
|
-
this.wss = new WebSocket.WebSocketServer({
|
|
9
|
-
server: createServer(ServerHandler_1.ServerHandler.getInstance().serverStartRequest.wssServerCertificateOption).listen(ServerHandler_1.ServerHandler.getInstance().serverStartRequest.port, async () => {
|
|
10
|
-
})
|
|
11
|
-
});
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
this.wss = new WebSocket.WebSocketServer({ port: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.port });
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
exports.SSEHandler = SSEHandler;
|