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.
@@ -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()));
@@ -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;
@@ -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.workers, (this.sfuRooms.size % this.workers.length), connectionProtocol);
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 declare type WebSocketEvents = SFUMessageType | WebSocketBasicEvents | LocalMessageType | MultiSystemEvents;
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.2",
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.8",
34
+ "mediasoup": "^3.14.11",
35
35
  "public-ip": "4.0.3",
36
- "typescript": "^4.8.3",
36
+ "typescript": "^5.6.2",
37
37
  "uuid": "^9.0.0",
38
38
  "ws": "^8.9.0"
39
39
  },
@@ -1,3 +0,0 @@
1
- export declare class SSEHandler {
2
- constructor();
3
- }
@@ -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;