vani-meeting-server 2.5.8 → 2.6.0
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/ServerHandler.js +7 -7
- package/lib/lib/redis/RedisHandler.js +21 -20
- package/lib/sfu/SFUEachRoomHandler.js +14 -14
- package/lib/sfu/SFUEachRoomMutliServerHandler.js +12 -11
- package/lib/sfu/SFUEachRoomUserHandler.js +32 -31
- package/lib/sfu/SFUHandler.js +7 -6
- package/lib/utility/Constant.js +2 -1
- package/lib/websocket/EachSocketConnectionHandler.js +9 -9
- package/lib/websocket/SSEHandler.d.ts +3 -0
- package/lib/websocket/SSEHandler.js +18 -0
- package/package.json +1 -1
package/lib/ServerHandler.js
CHANGED
|
@@ -73,30 +73,30 @@ class ServerHandler {
|
|
|
73
73
|
let isConnected = await RedisHandler_1.RedisHandler.getInstance().isRedisConnected() && SFUHandler_1.SFUHandler.getInstance().isSFURunning() && this.webSocketHandler;
|
|
74
74
|
if (this.webSocketHandler && isConnected) {
|
|
75
75
|
const address = (ServerHandler.getInstance().serverStartRequest.wssServerHostForCert) ? ("wss://" + ServerHandler.getInstance().serverStartRequest.wssServerHostForCert + ":" + this.serverStartRequest.port + "/?serverstatuscheck=true") : ("ws://127.0.0.1:" + this.serverStartRequest.port + "/?serverstatuscheck=true");
|
|
76
|
-
console.log(address);
|
|
76
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(address);
|
|
77
77
|
this.testWebSocket = new ws_1.default(address);
|
|
78
78
|
this.testWebSocket.on('error', (err) => {
|
|
79
|
-
console.log("isServerWorking", "Websocket error", err);
|
|
79
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isServerWorking", "Websocket error", err);
|
|
80
80
|
this.testWebSocket ? this.testWebSocket.close() : undefined;
|
|
81
81
|
resolve(false);
|
|
82
82
|
});
|
|
83
83
|
this.testWebSocket.on('open', () => {
|
|
84
84
|
this.testWebSocket ? this.testWebSocket.close() : undefined;
|
|
85
|
-
console.log("isServerWorking", "Websocket open");
|
|
85
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isServerWorking", "Websocket open");
|
|
86
86
|
resolve(true);
|
|
87
87
|
});
|
|
88
88
|
}
|
|
89
89
|
else {
|
|
90
|
-
console.log("isServerWorking", isConnected);
|
|
90
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isServerWorking", isConnected);
|
|
91
91
|
resolve(false);
|
|
92
92
|
}
|
|
93
93
|
});
|
|
94
94
|
};
|
|
95
95
|
closeTheRoomForcefully = async (roomId) => {
|
|
96
96
|
try {
|
|
97
|
-
console.log(" closeTheRoomForcefully called");
|
|
97
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" closeTheRoomForcefully called");
|
|
98
98
|
const participants = await RedisHandler_1.RedisHandler.getInstance().getAllParticipants(roomId);
|
|
99
|
-
console.log(" closeTheRoomForcefully called", participants);
|
|
99
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" closeTheRoomForcefully called", participants);
|
|
100
100
|
if (participants && participants.length > 0) {
|
|
101
101
|
let shouldMoveToNext = true;
|
|
102
102
|
let index = 0;
|
|
@@ -112,7 +112,7 @@ class ServerHandler {
|
|
|
112
112
|
}
|
|
113
113
|
}
|
|
114
114
|
catch (err) {
|
|
115
|
-
console.log("closeTheRoomForcefully", err);
|
|
115
|
+
this.serverStartRequest && this.serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("closeTheRoomForcefully", err);
|
|
116
116
|
}
|
|
117
117
|
};
|
|
118
118
|
}
|
|
@@ -8,6 +8,7 @@ const redis_1 = require("redis");
|
|
|
8
8
|
const Participant_1 = require("../../models/Participant");
|
|
9
9
|
const ServerHandler_1 = require("../../ServerHandler");
|
|
10
10
|
const Constant_1 = __importDefault(require("../../utility/Constant"));
|
|
11
|
+
const WebSocketServerStartRequest_1 = require("../../models/WebSocketServerStartRequest");
|
|
11
12
|
var RedisKeyType;
|
|
12
13
|
(function (RedisKeyType) {
|
|
13
14
|
RedisKeyType["Messages"] = "messages";
|
|
@@ -107,11 +108,11 @@ class RedisHandler {
|
|
|
107
108
|
//Clean Room Id
|
|
108
109
|
async cleanUpRoomId(roomId) {
|
|
109
110
|
try {
|
|
110
|
-
console.log("Cleanup Room From Redis");
|
|
111
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Cleanup Room From Redis");
|
|
111
112
|
await this.redisClient.del(roomId);
|
|
112
113
|
}
|
|
113
114
|
catch (err) {
|
|
114
|
-
console.log("cleanUpRoomId", err);
|
|
115
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("cleanUpRoomId", err);
|
|
115
116
|
}
|
|
116
117
|
}
|
|
117
118
|
//ip addresss
|
|
@@ -120,7 +121,7 @@ class RedisHandler {
|
|
|
120
121
|
const oldIps = await this.fetchIpsForRoomId(roomId);
|
|
121
122
|
const isOldIpPresent = oldIps.find((eachOldIp) => eachOldIp.ip === ipAddress && eachOldIp.port === ServerHandler_1.ServerHandler.getInstance().serverStartRequest.port);
|
|
122
123
|
if (isOldIpPresent) {
|
|
123
|
-
console.log("setIpForRoomId", isOldIpPresent);
|
|
124
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("setIpForRoomId", isOldIpPresent);
|
|
124
125
|
return;
|
|
125
126
|
}
|
|
126
127
|
oldIps.push({ ip: ipAddress, port: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.port });
|
|
@@ -129,7 +130,7 @@ class RedisHandler {
|
|
|
129
130
|
await this.fetchIpsForRoomId(roomId);
|
|
130
131
|
}
|
|
131
132
|
catch (err) {
|
|
132
|
-
console.log("setIpForRoomId", err);
|
|
133
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("setIpForRoomId", err);
|
|
133
134
|
}
|
|
134
135
|
}
|
|
135
136
|
async fetchIpsForRoomId(roomId) {
|
|
@@ -139,16 +140,16 @@ class RedisHandler {
|
|
|
139
140
|
try {
|
|
140
141
|
const ipAddress = await this.redisClient.hGet(roomId, RedisKeyType.IpAddress);
|
|
141
142
|
if (ipAddress) {
|
|
142
|
-
console.log("fetchIpsForRoomId", JSON.parse(ipAddress));
|
|
143
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("fetchIpsForRoomId", JSON.parse(ipAddress));
|
|
143
144
|
return JSON.parse(ipAddress);
|
|
144
145
|
}
|
|
145
146
|
else {
|
|
146
|
-
console.log("fetchIpsForRoomId", []);
|
|
147
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("fetchIpsForRoomId", []);
|
|
147
148
|
return [];
|
|
148
149
|
}
|
|
149
150
|
}
|
|
150
151
|
catch (err) {
|
|
151
|
-
console.log("fetchIpsForRoomId", err);
|
|
152
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("fetchIpsForRoomId", err);
|
|
152
153
|
return [];
|
|
153
154
|
}
|
|
154
155
|
}
|
|
@@ -160,7 +161,7 @@ class RedisHandler {
|
|
|
160
161
|
this.updateRoomCleanupTimeOut(roomId);
|
|
161
162
|
}
|
|
162
163
|
catch (err) {
|
|
163
|
-
console.log("deleteIpForRoomId", err);
|
|
164
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("deleteIpForRoomId", err);
|
|
164
165
|
}
|
|
165
166
|
}
|
|
166
167
|
//Messages
|
|
@@ -172,7 +173,7 @@ class RedisHandler {
|
|
|
172
173
|
this.updateRoomCleanupTimeOut(roomId);
|
|
173
174
|
}
|
|
174
175
|
catch (err) {
|
|
175
|
-
console.log("storeMesagesForRoom", err);
|
|
176
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("storeMesagesForRoom", err);
|
|
176
177
|
}
|
|
177
178
|
}
|
|
178
179
|
async fetchMessagesForRoom(roomId) {
|
|
@@ -186,7 +187,7 @@ class RedisHandler {
|
|
|
186
187
|
}
|
|
187
188
|
}
|
|
188
189
|
catch (err) {
|
|
189
|
-
console.log("fetchMessagesForRoom", err);
|
|
190
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("fetchMessagesForRoom", err);
|
|
190
191
|
return [];
|
|
191
192
|
}
|
|
192
193
|
}
|
|
@@ -197,7 +198,7 @@ class RedisHandler {
|
|
|
197
198
|
this.updateRoomCleanupTimeOut(roomId);
|
|
198
199
|
}
|
|
199
200
|
catch (err) {
|
|
200
|
-
console.log("storeMeetingTimeForRoom", err);
|
|
201
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("storeMeetingTimeForRoom", err);
|
|
201
202
|
return undefined;
|
|
202
203
|
}
|
|
203
204
|
}
|
|
@@ -212,14 +213,14 @@ class RedisHandler {
|
|
|
212
213
|
}
|
|
213
214
|
}
|
|
214
215
|
catch (err) {
|
|
215
|
-
console.log("fetchMeetingTimeForRoom", err);
|
|
216
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("fetchMeetingTimeForRoom", err);
|
|
216
217
|
return undefined;
|
|
217
218
|
}
|
|
218
219
|
}
|
|
219
220
|
//Users
|
|
220
221
|
async removeParticipantForRoom(roomId, participant) {
|
|
221
222
|
try {
|
|
222
|
-
console.log("removeParticipantForRoom", participant);
|
|
223
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("removeParticipantForRoom", participant);
|
|
223
224
|
const participantKey = RedisKeyType.Participants + ":" + participant.userId;
|
|
224
225
|
await this.redisClient.hDel(roomId, participantKey);
|
|
225
226
|
// console.log("removeParticipantForRoom =====" , participantKey)
|
|
@@ -228,13 +229,13 @@ class RedisHandler {
|
|
|
228
229
|
this.updateRoomCleanupTimeOut(roomId);
|
|
229
230
|
}
|
|
230
231
|
catch (err) {
|
|
231
|
-
console.log("removeParticipantForRoom", err);
|
|
232
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("removeParticipantForRoom", err);
|
|
232
233
|
return undefined;
|
|
233
234
|
}
|
|
234
235
|
}
|
|
235
236
|
async addUpdateParticipantForRoom(roomId, participant) {
|
|
236
237
|
try {
|
|
237
|
-
console.log("addUpdateParticipantForRoom", participant);
|
|
238
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("addUpdateParticipantForRoom", participant);
|
|
238
239
|
const participantKey = RedisKeyType.Participants + ":" + participant.userId;
|
|
239
240
|
if (!participant.serverIpAddress) {
|
|
240
241
|
participant.serverIpAddress = await Constant_1.default.getPublicIp();
|
|
@@ -246,7 +247,7 @@ class RedisHandler {
|
|
|
246
247
|
this.updateRoomCleanupTimeOut(roomId);
|
|
247
248
|
}
|
|
248
249
|
catch (err) {
|
|
249
|
-
console.log("addUpdateParticipantForRoom", err);
|
|
250
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("addUpdateParticipantForRoom", err);
|
|
250
251
|
return undefined;
|
|
251
252
|
}
|
|
252
253
|
}
|
|
@@ -260,7 +261,7 @@ class RedisHandler {
|
|
|
260
261
|
return undefined;
|
|
261
262
|
}
|
|
262
263
|
catch (err) {
|
|
263
|
-
console.log("getParticipantByUserId", err);
|
|
264
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("getParticipantByUserId", err);
|
|
264
265
|
return undefined;
|
|
265
266
|
}
|
|
266
267
|
}
|
|
@@ -278,7 +279,7 @@ class RedisHandler {
|
|
|
278
279
|
return participants;
|
|
279
280
|
}
|
|
280
281
|
catch (err) {
|
|
281
|
-
console.log("getAllParticipants", err);
|
|
282
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("getAllParticipants", err);
|
|
282
283
|
return [];
|
|
283
284
|
}
|
|
284
285
|
}
|
|
@@ -288,7 +289,7 @@ class RedisHandler {
|
|
|
288
289
|
return await this.redisClient.keys("*");
|
|
289
290
|
}
|
|
290
291
|
catch (err) {
|
|
291
|
-
console.log("getAllRoomsId", err);
|
|
292
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("getAllRoomsId", err);
|
|
292
293
|
}
|
|
293
294
|
}
|
|
294
295
|
// private getRediRoomModelForRoomId(roomId: string): RedisRoomModel {
|
|
@@ -306,7 +307,7 @@ class RedisHandler {
|
|
|
306
307
|
this.redisClient.expire(roomId, ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisRoomDestoryTimeOutInSec);
|
|
307
308
|
}
|
|
308
309
|
catch (err) {
|
|
309
|
-
console.log("updateRoomCleanupTimeOut", err);
|
|
310
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("updateRoomCleanupTimeOut", err);
|
|
310
311
|
}
|
|
311
312
|
}
|
|
312
313
|
releaseRedis = async () => {
|
|
@@ -112,7 +112,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
112
112
|
return this.connectionProtocol;
|
|
113
113
|
}
|
|
114
114
|
onMutiRoomMessage = async (message) => {
|
|
115
|
-
console.log("onMutiRoomMessage", message);
|
|
115
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onMutiRoomMessage", message);
|
|
116
116
|
this.eachRoomMutliserverHandler?.onMutiRoomMessage(message);
|
|
117
117
|
};
|
|
118
118
|
onNewMessage(payload, participant) {
|
|
@@ -122,7 +122,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
122
122
|
}
|
|
123
123
|
else {
|
|
124
124
|
if (this.isInitInProgress === true) {
|
|
125
|
-
console.log("Init in Progess for RoomId:", this.roomId);
|
|
125
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Init in Progess for RoomId:", this.roomId);
|
|
126
126
|
this.messagesDuringInit.push({ payload: payload, participant: participant });
|
|
127
127
|
return;
|
|
128
128
|
}
|
|
@@ -150,7 +150,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
150
150
|
}
|
|
151
151
|
}
|
|
152
152
|
else {
|
|
153
|
-
console.log("this.sendRouter or recv router not found ", this.sendRouter, this.recvRouter);
|
|
153
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("this.sendRouter or recv router not found ", this.sendRouter, this.recvRouter);
|
|
154
154
|
}
|
|
155
155
|
}
|
|
156
156
|
async onGetRTPCapabilities(participant) {
|
|
@@ -169,12 +169,12 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
169
169
|
}
|
|
170
170
|
}
|
|
171
171
|
async setUpForRoomId(workers, sendWorkerIndex) {
|
|
172
|
-
console.log("setUpForRoomId", workers, "sendWorkerIndex", sendWorkerIndex);
|
|
172
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("setUpForRoomId", workers, "sendWorkerIndex", sendWorkerIndex);
|
|
173
173
|
let currentWorkerIndexForRouter = sendWorkerIndex;
|
|
174
174
|
let sendWorkerPID = undefined;
|
|
175
175
|
if (!this.sendRouter) {
|
|
176
176
|
const worker = workers[currentWorkerIndexForRouter];
|
|
177
|
-
console.log("worker", worker);
|
|
177
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("worker", worker);
|
|
178
178
|
if (worker) {
|
|
179
179
|
this.sendRouter = await worker.createRouter({ mediaCodecs: Constant_1.mediaCodecs });
|
|
180
180
|
sendWorkerPID = worker.pid;
|
|
@@ -185,17 +185,17 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
185
185
|
if (ServerHandler_1.ServerHandler.getInstance().serverStartRequest.isSpeakerFindRequired) {
|
|
186
186
|
this.addAudioObserver();
|
|
187
187
|
}
|
|
188
|
-
console.log("setUpForRoomId informOtherSystems");
|
|
188
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("setUpForRoomId informOtherSystems");
|
|
189
189
|
// if(this.sendRouter && !this.eachRoomMutliserverHandler){
|
|
190
190
|
// this.eachRoomMutliserverHandler = new SFUEachRoomMutliServerHandler(this.roomId, this.sendRouter,this)
|
|
191
191
|
// }
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
if (this.sendRouter) {
|
|
195
|
-
console.log("Create Recv Router");
|
|
195
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Create Recv Router");
|
|
196
196
|
if (workers.length === 1) {
|
|
197
197
|
this.recvRouter.push(this.sendRouter);
|
|
198
|
-
console.log("Recv Router is same as sender router");
|
|
198
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Recv Router is same as sender router");
|
|
199
199
|
}
|
|
200
200
|
else {
|
|
201
201
|
while (this.recvRouter.length < (workers.length - 1)) { // Dont create on send worker
|
|
@@ -205,7 +205,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
205
205
|
continue;
|
|
206
206
|
}
|
|
207
207
|
this.recvRouter.push(await worker.createRouter({ mediaCodecs: Constant_1.mediaCodecs }));
|
|
208
|
-
console.log("Recv Router created");
|
|
208
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Recv Router created");
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
}
|
|
@@ -247,7 +247,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
247
247
|
const participant = RedisHandler_1.RedisHandler.getInstance().getParticipantByUserId(this.roomId, speakerUserId);
|
|
248
248
|
if (participant !== undefined) {
|
|
249
249
|
this.redisBroadcastMessageToTopic(this.roomId, this.preapreClientMessageBody(true, participant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnSpeakerChanged, { speakerUserId: speakerUserId })));
|
|
250
|
-
console.log("dominantspeaker", speakerUserId);
|
|
250
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("dominantspeaker", speakerUserId);
|
|
251
251
|
}
|
|
252
252
|
}
|
|
253
253
|
});
|
|
@@ -357,9 +357,9 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
357
357
|
}
|
|
358
358
|
async startBroadcasting(plainTransportPayload) {
|
|
359
359
|
//Create Plain Transport
|
|
360
|
-
console.log("=====startBroadcasting=======");
|
|
361
|
-
console.log(plainTransportPayload);
|
|
362
|
-
console.log("=====startBroadcasting=======");
|
|
360
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("=====startBroadcasting=======");
|
|
361
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(plainTransportPayload);
|
|
362
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("=====startBroadcasting=======");
|
|
363
363
|
const isAudioRequired = plainTransportPayload.isAudioRequired;
|
|
364
364
|
const isVideoRequired = plainTransportPayload.isVideoRequired;
|
|
365
365
|
const connectToIp = plainTransportPayload.remoteIpAddress;
|
|
@@ -433,7 +433,7 @@ class SFUEachRoomHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
433
433
|
}
|
|
434
434
|
onRedisMessage = async (data) => {
|
|
435
435
|
if (data.interfaceName === 'MultiSystemEventsBody') {
|
|
436
|
-
console.log("MultiSystemEventsBody recived ", data);
|
|
436
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("MultiSystemEventsBody recived ", data);
|
|
437
437
|
const multiSystemEvent = data;
|
|
438
438
|
if (multiSystemEvent.roomId === this.roomId) {
|
|
439
439
|
this.onMutiRoomMessage(multiSystemEvent);
|
|
@@ -10,6 +10,7 @@ const ServerHandler_1 = require("../ServerHandler");
|
|
|
10
10
|
const Constant_1 = __importDefault(require("../utility/Constant"));
|
|
11
11
|
const Utility_1 = require("../utility/Utility");
|
|
12
12
|
const EachSocketConnectionHandler_1 = require("../websocket/EachSocketConnectionHandler");
|
|
13
|
+
const WebSocketServerStartRequest_1 = require("../models/WebSocketServerStartRequest");
|
|
13
14
|
class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
14
15
|
roomId;
|
|
15
16
|
sendRouter;
|
|
@@ -30,7 +31,7 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
30
31
|
this.pipeTransports = {};
|
|
31
32
|
};
|
|
32
33
|
informOtherSystems = async () => {
|
|
33
|
-
console.log("informOtherSystems");
|
|
34
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("informOtherSystems");
|
|
34
35
|
const allIps = await RedisHandler_1.RedisHandler.getInstance().fetchIpsForRoomId(this.roomId);
|
|
35
36
|
allIps.forEach((async (eachIp) => {
|
|
36
37
|
if (eachIp.ip !== await Constant_1.default.getPublicIp() || eachIp.port !== ServerHandler_1.ServerHandler.getInstance().serverStartRequest.port) {
|
|
@@ -38,14 +39,14 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
38
39
|
const pipeTransportAndPort = await this.createPipeTransport(eachIp.ip);
|
|
39
40
|
if (pipeTransportAndPort) {
|
|
40
41
|
this.redisBroadcastMessageToTopic(Utility_1.Utility.getTopicForRoomIdAndIp(this.roomId, eachIp.ip), this.prepareMutilSystemEvents(EachSocketConnectionHandler_1.MultiSystemEvents.OnNewServerJoinedForRoom, this.roomId, { ip: await Constant_1.default.getPublicIp(), port: pipeTransportAndPort.port }));
|
|
41
|
-
console.log("informOtherSystems msg sent to ", Utility_1.Utility.getTopicForRoomIdAndIp(this.roomId, eachIp.ip));
|
|
42
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("informOtherSystems msg sent to ", Utility_1.Utility.getTopicForRoomIdAndIp(this.roomId, eachIp.ip));
|
|
42
43
|
}
|
|
43
44
|
}
|
|
44
45
|
}
|
|
45
46
|
}));
|
|
46
47
|
};
|
|
47
48
|
onMutiRoomMessage = async (message) => {
|
|
48
|
-
console.log("onMutiRoomMessage", message);
|
|
49
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onMutiRoomMessage", message);
|
|
49
50
|
if (message.type === EachSocketConnectionHandler_1.MultiSystemEvents.OnNewServerJoinedForRoom) {
|
|
50
51
|
const pipeTransportAndPort = await this.createPipeTransport(message.data.ip);
|
|
51
52
|
if (pipeTransportAndPort) {
|
|
@@ -81,7 +82,7 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
81
82
|
const producer = await this.pipeTransports[ip].transport.produce({ rtpParameters: message.data.rtpParameters, kind: message.data.kind, appData: message.data.appData });
|
|
82
83
|
producer.appData.consumerId = message.data.consumerId;
|
|
83
84
|
this.onNewRemoteProducer(producer);
|
|
84
|
-
console.log("MultiSystemEvents.OnConsumerData", producer);
|
|
85
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("MultiSystemEvents.OnConsumerData", producer);
|
|
85
86
|
}
|
|
86
87
|
}
|
|
87
88
|
else if (message.type === EachSocketConnectionHandler_1.MultiSystemEvents.OnRemoteConsumerClosed) {
|
|
@@ -90,7 +91,7 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
90
91
|
}
|
|
91
92
|
}
|
|
92
93
|
else if (message.type === EachSocketConnectionHandler_1.MultiSystemEvents.OnPipeClosed) {
|
|
93
|
-
console.log("on remote");
|
|
94
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("on remote");
|
|
94
95
|
if (message.data.ip) {
|
|
95
96
|
if (this.pipeTransports[message.data.ip]) {
|
|
96
97
|
this.pipeTransports[message.data.ip].transport.close();
|
|
@@ -111,7 +112,7 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
111
112
|
});
|
|
112
113
|
if (pipeTransport) {
|
|
113
114
|
pipeTransport.on("@close", async () => {
|
|
114
|
-
console.log("Pipe Closed");
|
|
115
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Pipe Closed");
|
|
115
116
|
for (const key of Object.keys(this.pipeTransports)) {
|
|
116
117
|
if (this.pipeTransports[key].transport.id === pipeTransport.id) {
|
|
117
118
|
delete this.pipeTransports[key];
|
|
@@ -129,12 +130,12 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
129
130
|
};
|
|
130
131
|
consumeProductAndInfrom = async (transport, ipAddress, producer) => {
|
|
131
132
|
if (producer.participant.serverIpAddress === await Constant_1.default.getPublicIp()) {
|
|
132
|
-
console.log("consumeProductAndInfrom", ipAddress, producer.producer.appData);
|
|
133
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("consumeProductAndInfrom", ipAddress, producer.producer.appData);
|
|
133
134
|
const consumer = await transport.consume({ producerId: producer.producer.id });
|
|
134
|
-
console.log("consumeProductAndInfrom consumer.paused", consumer.paused);
|
|
135
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("consumeProductAndInfrom consumer.paused", consumer.paused);
|
|
135
136
|
if (consumer) {
|
|
136
137
|
consumer.on("@producerclose", async () => {
|
|
137
|
-
console.log("Transport producerclose closed");
|
|
138
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Transport producerclose closed");
|
|
138
139
|
consumer.close();
|
|
139
140
|
this.redisBroadcastMessageToTopic(Utility_1.Utility.getTopicForRoomIdAndIp(this.roomId, ipAddress), this.prepareMutilSystemEvents(EachSocketConnectionHandler_1.MultiSystemEvents.OnRemoteConsumerClosed, this.roomId, { ip: await Constant_1.default.getPublicIp(), consumerId: consumer.id }));
|
|
140
141
|
});
|
|
@@ -143,13 +144,13 @@ class SFUEachRoomMutliServerHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket
|
|
|
143
144
|
}
|
|
144
145
|
};
|
|
145
146
|
async onNewLocalProducer(producer) {
|
|
146
|
-
console.log("onNewProducer onNewLocalProducer", producer.producer.appData);
|
|
147
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onNewProducer onNewLocalProducer", producer.producer.appData);
|
|
147
148
|
for (const key of Object.keys(this.pipeTransports)) {
|
|
148
149
|
await this.consumeProductAndInfrom(this.pipeTransports[key].transport, key, producer);
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
152
|
async onNewRemoteProducer(producer) {
|
|
152
|
-
console.log("onNewProducer SFUEachRoomMutliServerHandler", producer.appData);
|
|
153
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onNewProducer SFUEachRoomMutliServerHandler", producer.appData);
|
|
153
154
|
if (this.roomHandlerDataSource) {
|
|
154
155
|
if (producer.closed === false && producer.appData.participant && producer.appData.participant.userId) {
|
|
155
156
|
const remoteParticipant = await RedisHandler_1.RedisHandler.getInstance().getParticipantByUserId(this.roomId, producer.appData.participant.userId);
|
|
@@ -100,26 +100,26 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
100
100
|
const consumer = await this.webrtcRecieveTransport?.consume(payload.message);
|
|
101
101
|
if (consumer) {
|
|
102
102
|
consumer.on("producerclose", () => {
|
|
103
|
-
console.log("producerclose");
|
|
103
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("producerclose");
|
|
104
104
|
consumer.close();
|
|
105
105
|
this.consumers = this.consumers.filter((eachConsumer) => eachConsumer.id !== consumer.id);
|
|
106
106
|
const response = { producerId: consumer.producerId };
|
|
107
107
|
this.redisBroadcastMessageToTopic(this.selfParticipant.userId, this.preapreClientMessageBody(true, this.selfParticipant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnTrackEnded, response)));
|
|
108
108
|
});
|
|
109
109
|
consumer.on("producerpause", () => {
|
|
110
|
-
console.log("producerpause");
|
|
110
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("producerpause");
|
|
111
111
|
if (consumer.closed === false) {
|
|
112
112
|
consumer.pause();
|
|
113
113
|
}
|
|
114
114
|
});
|
|
115
115
|
consumer.on("producerresume", () => {
|
|
116
|
-
console.log("producerresume");
|
|
116
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("producerresume");
|
|
117
117
|
if (consumer.closed === false) {
|
|
118
118
|
consumer.resume(); // To be Done
|
|
119
119
|
}
|
|
120
120
|
});
|
|
121
121
|
consumer.on("@close", () => {
|
|
122
|
-
console.log("On closed");
|
|
122
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("On closed");
|
|
123
123
|
this.consumers = this.consumers.filter((eachConsumer) => eachConsumer.id !== consumer.id);
|
|
124
124
|
});
|
|
125
125
|
this.consumers.push(consumer);
|
|
@@ -129,21 +129,21 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
129
129
|
else {
|
|
130
130
|
const errorPayload = { message: "Not able to consume - onConsumeProductId - SFUEachRoomUserHandler" };
|
|
131
131
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
132
|
-
console.log("Not able to consume");
|
|
132
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Not able to consume");
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
else {
|
|
136
136
|
const errorPayload = { message: "Producer not found - onConsumeProductId - SFUEachRoomUserHandler" };
|
|
137
137
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
138
|
-
console.log(" onConsumeProductId : Producer not found ", this.selfParticipant.userData.name, payload);
|
|
138
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" onConsumeProductId : Producer not found ", this.selfParticipant.userData.name, payload);
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
}
|
|
142
142
|
catch (err) {
|
|
143
143
|
const errorPayload = { message: "Product consume Error - onConsumeProductId - SFUEachRoomUserHandler", extraData: err };
|
|
144
144
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
145
|
-
console.log(" Product Consume Error ", payload);
|
|
146
|
-
console.log(err);
|
|
145
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" Product Consume Error ", payload);
|
|
146
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(err);
|
|
147
147
|
}
|
|
148
148
|
}
|
|
149
149
|
onReadyToConsume(payload) {
|
|
@@ -152,7 +152,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
152
152
|
if (eachRoomProducer.participant.userId && this.selfParticipant.userId && eachRoomProducer.participant.userId !== this.selfParticipant.userId && eachRoomProducer.producer) {
|
|
153
153
|
const producerData = { producer: { id: eachRoomProducer.producer.id, rtpParameters: eachRoomProducer.producer.rtpParameters, appData: eachRoomProducer.producer.appData } };
|
|
154
154
|
this.redisBroadcastMessageToTopic(this.selfParticipant.userId, this.preapreClientMessageBody(true, this.selfParticipant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnNewProducer, producerData)));
|
|
155
|
-
console.log("On New Producer");
|
|
155
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("On New Producer");
|
|
156
156
|
}
|
|
157
157
|
});
|
|
158
158
|
}
|
|
@@ -163,12 +163,12 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
163
163
|
const consumer = this.consumers.find((consumer) => consumer.id === consumerId);
|
|
164
164
|
if (consumer && consumer.closed === false && consumer?.producerPaused === false) {
|
|
165
165
|
consumer.resume();
|
|
166
|
-
console.log("resumeConsumer", this.selfParticipant.userData.name);
|
|
166
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("resumeConsumer", this.selfParticipant.userData.name);
|
|
167
167
|
}
|
|
168
168
|
else if (!consumer) {
|
|
169
169
|
const errorPayload = { message: "Consumer not found while trying to resume - resumeConsumer - SFUEachRoomUserHandler" };
|
|
170
170
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
171
|
-
console.log(" resumeConsumer : Consumer not found ");
|
|
171
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" resumeConsumer : Consumer not found ");
|
|
172
172
|
}
|
|
173
173
|
}
|
|
174
174
|
}
|
|
@@ -178,12 +178,12 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
178
178
|
const consumer = this.consumers.find((consumer) => consumer.id === consumerId);
|
|
179
179
|
if (consumer && consumer.closed === false) {
|
|
180
180
|
consumer.pause();
|
|
181
|
-
console.log("pauseConsumer", this.selfParticipant.userData.name);
|
|
181
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("pauseConsumer", this.selfParticipant.userData.name);
|
|
182
182
|
}
|
|
183
183
|
else if (!consumer) {
|
|
184
184
|
const errorPayload = { message: "Consumer not found while trying to pause - pauseConsumer - SFUEachRoomUserHandler" };
|
|
185
185
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
186
|
-
console.log(" pauseConsumer : Consumer not found ");
|
|
186
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" pauseConsumer : Consumer not found ");
|
|
187
187
|
}
|
|
188
188
|
}
|
|
189
189
|
}
|
|
@@ -193,24 +193,24 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
193
193
|
if (consumerId && spatialLayer !== undefined) {
|
|
194
194
|
const consumer = this.consumers.find((consumer) => consumer.id === consumerId);
|
|
195
195
|
if (consumer && consumer.closed === false) {
|
|
196
|
-
console.log("updateSpatialConsumer consumer", consumer.id);
|
|
196
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("updateSpatialConsumer consumer", consumer.id);
|
|
197
197
|
try {
|
|
198
198
|
consumer.setPreferredLayers({ spatialLayer: spatialLayer });
|
|
199
|
-
console.log("consumer.setPreferredLayers", spatialLayer);
|
|
199
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("consumer.setPreferredLayers", spatialLayer);
|
|
200
200
|
}
|
|
201
201
|
catch (err) {
|
|
202
|
-
console.log(err);
|
|
202
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(err);
|
|
203
203
|
}
|
|
204
204
|
}
|
|
205
205
|
else if (!consumer) {
|
|
206
206
|
const errorPayload = { message: "Consumer not found while trying to update spatial - updateSpatialConsumer - SFUEachRoomUserHandler" };
|
|
207
207
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
208
|
-
console.log(" updateSpatialConsumer : Consumer not found ");
|
|
208
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" updateSpatialConsumer : Consumer not found ");
|
|
209
209
|
}
|
|
210
210
|
}
|
|
211
211
|
}
|
|
212
212
|
async onTransportProduceSyncRequest(payload) {
|
|
213
|
-
console.log("onTransportProduceSyncRequest");
|
|
213
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onTransportProduceSyncRequest");
|
|
214
214
|
if (this.roomHandlerDataSource) {
|
|
215
215
|
const producer = await this.webrtcSendTransport?.produce(payload.message);
|
|
216
216
|
if (producer) {
|
|
@@ -223,7 +223,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
223
223
|
else {
|
|
224
224
|
const errorPayload = { message: "Not able to create Producer - onTransportProduceSyncRequest - SFUEachRoomUserHandler", extraData: payload };
|
|
225
225
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
226
|
-
console.log(" Error in creating producer ", payload);
|
|
226
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" Error in creating producer ", payload);
|
|
227
227
|
}
|
|
228
228
|
}
|
|
229
229
|
}
|
|
@@ -242,11 +242,12 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
242
242
|
}
|
|
243
243
|
}
|
|
244
244
|
async onNewProducer(producer) {
|
|
245
|
-
console.log("onNewProducer SFUEachRoomUserHandler");
|
|
245
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onNewProducer SFUEachRoomUserHandler");
|
|
246
246
|
if (this.roomHandlerDataSource) {
|
|
247
247
|
if (producer.closed === false) {
|
|
248
248
|
await this.roomHandlerDataSource.pipeToRoute(producer);
|
|
249
249
|
this.producers.push(producer);
|
|
250
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(this.producers);
|
|
250
251
|
this.roomHandlerDataSource.onNewProducer(producer, this.selfParticipant);
|
|
251
252
|
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 } })));
|
|
252
253
|
}
|
|
@@ -268,7 +269,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
268
269
|
if (producerId) {
|
|
269
270
|
const producerToBeClosed = this.producers.find((eachProducer) => eachProducer.id === producerId);
|
|
270
271
|
if (producerToBeClosed) {
|
|
271
|
-
console.log("onProducerClosed", payload.message);
|
|
272
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onProducerClosed", payload.message);
|
|
272
273
|
producerToBeClosed.close();
|
|
273
274
|
const response = { producerId: producerId };
|
|
274
275
|
this.redisBroadcastMessageToTopic(Utility_1.Utility.getTopicForRoomIdAndIp(this.selfParticipant.roomId, (await Constant_1.default.getPublicIp())), this.preapreClientMessageBody(false, this.selfParticipant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnTrackEnded, response)));
|
|
@@ -280,14 +281,14 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
280
281
|
if (!this.sendRouter) {
|
|
281
282
|
const errorPayload = { message: "No Send router found - createWebrtcSendTransport - SFUEachRoomUserHandler", extraData: participant };
|
|
282
283
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
283
|
-
console.log("createWebrtcRecieveTransport no send router found ", participant.roomId);
|
|
284
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcRecieveTransport no send router found ", participant.roomId);
|
|
284
285
|
return;
|
|
285
286
|
}
|
|
286
|
-
console.log("createWebrtcSendTransport");
|
|
287
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport");
|
|
287
288
|
if (!this.webrtcSendTransport || this.webrtcSendTransport.closed) {
|
|
288
|
-
console.log("createWebrtcSendTransport started");
|
|
289
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport started");
|
|
289
290
|
this.webrtcSendTransport = await this.sendRouter?.createWebRtcTransport(await Constant_1.default.webrtcTransportConfiguration(this.roomHandlerDataSource.getConnectionProtocolType()));
|
|
290
|
-
console.log("createWebrtcSendTransport created");
|
|
291
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport created");
|
|
291
292
|
if (this.webrtcSendTransport) {
|
|
292
293
|
this.webrtcSendTransport.appData.type = 'send';
|
|
293
294
|
this.webrtcSendTransport.appData.userId = participant.userId;
|
|
@@ -298,7 +299,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
298
299
|
else {
|
|
299
300
|
const errorPayload = { message: "Transport Not Created - createWebrtcSendTransport - SFUEachRoomUserHandler", extraData: await Constant_1.default.webrtcTransportConfiguration(this.roomHandlerDataSource.getConnectionProtocolType()) };
|
|
300
301
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
301
|
-
console.log("createWebrtcSendTransport Transport not created ", participant.roomId);
|
|
302
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport Transport not created ", participant.roomId);
|
|
302
303
|
}
|
|
303
304
|
}
|
|
304
305
|
if (this.webrtcSendTransport) {
|
|
@@ -317,7 +318,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
317
318
|
appData: this.webrtcSendTransport.appData,
|
|
318
319
|
iceServers: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.iceServers ? ServerHandler_1.ServerHandler.getInstance().serverStartRequest.iceServers : undefined
|
|
319
320
|
};
|
|
320
|
-
console.log("createWebrtcSendTransport send response");
|
|
321
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcSendTransport send response");
|
|
321
322
|
this.redisBroadcastMessageToTopic(participant.userId, this.preapreClientMessageBody(true, participant, this.preapreWebSocketMessageBody(EachSocketConnectionHandler_1.SFUMessageType.OnSendTransport, { transport: transportOptionForClient })));
|
|
322
323
|
}
|
|
323
324
|
}
|
|
@@ -325,7 +326,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
325
326
|
if (!this.recvRouter) {
|
|
326
327
|
const errorPayload = { message: "Recv Router not found - createWebrtcRecieveTransport - SFUEachRoomUserHandler", extraData: participant };
|
|
327
328
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
328
|
-
console.log("createWebrtcRecieveTransport no recieve router found ", participant.roomId);
|
|
329
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("createWebrtcRecieveTransport no recieve router found ", participant.roomId);
|
|
329
330
|
return;
|
|
330
331
|
}
|
|
331
332
|
if (!this.webrtcRecieveTransport || this.webrtcRecieveTransport.closed) {
|
|
@@ -339,7 +340,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
339
340
|
else {
|
|
340
341
|
const errorPayload = { message: "Transport Not created - createWebrtcRecieveTransport - SFUEachRoomUserHandler", extraData: (await Constant_1.default.webrtcTransportConfiguration(this.roomHandlerDataSource.getConnectionProtocolType())) };
|
|
341
342
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
342
|
-
console.log("webrtcRecieveTransport Transport not created ", participant.roomId);
|
|
343
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("webrtcRecieveTransport Transport not created ", participant.roomId);
|
|
343
344
|
}
|
|
344
345
|
}
|
|
345
346
|
if (this.webrtcRecieveTransport) {
|
|
@@ -381,7 +382,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
381
382
|
else {
|
|
382
383
|
const errorPayload = { message: "No Transport Found - connectTransport - SFUEachRoomUserHandler", extraData: payload };
|
|
383
384
|
Utility_1.Utility.checkAndSendLogs({ logLevel: WebSocketServerStartRequest_1.LogLevel.Error, roomId: this.selfParticipant.roomId, payload: errorPayload, logType: Logs_1.LogType.LogTypeError });
|
|
384
|
-
console.log("connectTransport no transport found ", payload);
|
|
385
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("connectTransport no transport found ", payload);
|
|
385
386
|
}
|
|
386
387
|
}
|
|
387
388
|
async onRestartIceCandidate(payload) {
|
|
@@ -418,7 +419,7 @@ class SFUEachRoomUserHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
418
419
|
this.producers = this.producers.filter((eachProducer) => eachProducer.closed === false);
|
|
419
420
|
}
|
|
420
421
|
catch (err) {
|
|
421
|
-
console.log(err);
|
|
422
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(err);
|
|
422
423
|
}
|
|
423
424
|
if (this.isUserPresentInRoom) {
|
|
424
425
|
setTimeout(this.checkAllProducerAndConsuer, 8000);
|
package/lib/sfu/SFUHandler.js
CHANGED
|
@@ -29,6 +29,7 @@ const SFUEachRoomHandler_1 = require("./SFUEachRoomHandler");
|
|
|
29
29
|
const ServerHandler_1 = require("../ServerHandler");
|
|
30
30
|
const Event_1 = require("../models/Event");
|
|
31
31
|
const EventEmitterHandler_1 = require("../utility/EventEmitterHandler");
|
|
32
|
+
const WebSocketServerStartRequest_1 = require("../models/WebSocketServerStartRequest");
|
|
32
33
|
const RedisHandler_1 = require("../lib/redis/RedisHandler");
|
|
33
34
|
const mediasoup = require("mediasoup");
|
|
34
35
|
class SFUHandler {
|
|
@@ -46,14 +47,14 @@ class SFUHandler {
|
|
|
46
47
|
if (this.workers.length > 0) {
|
|
47
48
|
for (const eachWorker of this.workers) {
|
|
48
49
|
if (!(eachWorker && eachWorker.closed === false && eachWorker.died === false)) {
|
|
49
|
-
console.log("isSFURunning", false, eachWorker);
|
|
50
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isSFURunning", false, eachWorker);
|
|
50
51
|
return false;
|
|
51
52
|
}
|
|
52
53
|
}
|
|
53
|
-
console.log("isSFURunning", true);
|
|
54
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isSFURunning", true);
|
|
54
55
|
return true;
|
|
55
56
|
}
|
|
56
|
-
console.log("isSFURunning", false);
|
|
57
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("isSFURunning", false);
|
|
57
58
|
return false;
|
|
58
59
|
};
|
|
59
60
|
async init() {
|
|
@@ -61,7 +62,7 @@ class SFUHandler {
|
|
|
61
62
|
}
|
|
62
63
|
async checkAndSetupRoom(roomId, connectionProtocol) {
|
|
63
64
|
if (this.sfuRooms.has(roomId) === false) {
|
|
64
|
-
console.log("On New Room");
|
|
65
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("On New Room");
|
|
65
66
|
const sfuEachRoomHandler = new SFUEachRoomHandler_1.SFUEachRoomHandler(roomId, this.workers, (this.sfuRooms.size % this.workers.length), connectionProtocol);
|
|
66
67
|
this.sfuRooms.set(roomId, sfuEachRoomHandler);
|
|
67
68
|
}
|
|
@@ -78,7 +79,7 @@ class SFUHandler {
|
|
|
78
79
|
return this.sfuRooms.get(roomId);
|
|
79
80
|
}
|
|
80
81
|
else {
|
|
81
|
-
console.log("No Room Found During SFU Message", roomId);
|
|
82
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("No Room Found During SFU Message", roomId);
|
|
82
83
|
}
|
|
83
84
|
}
|
|
84
85
|
async startPlainTransportForBroadcasting(plainTransportPayload, forRoomid) {
|
|
@@ -104,7 +105,7 @@ class SFUHandler {
|
|
|
104
105
|
worker.updateSettings({ logLevel: "debug" });
|
|
105
106
|
this.workers.push(worker);
|
|
106
107
|
}
|
|
107
|
-
console.log("Worker Created", this.workers.length);
|
|
108
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Worker Created", this.workers.length);
|
|
108
109
|
}
|
|
109
110
|
}
|
|
110
111
|
exports.SFUHandler = SFUHandler;
|
package/lib/utility/Constant.js
CHANGED
|
@@ -2,11 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.plainTransportConfiguration = exports.getPublicIp = exports.webrtcTransportConfiguration = exports.mediaCodecs = void 0;
|
|
4
4
|
const WebSocketServerStartRequest_1 = require("../models/WebSocketServerStartRequest");
|
|
5
|
+
const ServerHandler_1 = require("../ServerHandler");
|
|
5
6
|
const publicIp = require('public-ip');
|
|
6
7
|
let publicIpAddress;
|
|
7
8
|
(async () => {
|
|
8
9
|
publicIpAddress = await publicIp.v4();
|
|
9
|
-
console.log(publicIpAddress);
|
|
10
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(publicIpAddress);
|
|
10
11
|
})();
|
|
11
12
|
exports.mediaCodecs = [
|
|
12
13
|
{
|
|
@@ -143,7 +143,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
143
143
|
this.subscribeToRedisMessages();
|
|
144
144
|
}
|
|
145
145
|
async onSocketClosed(event) {
|
|
146
|
-
console.log("Socket close code", event, this.selfParticipant);
|
|
146
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("Socket close code", event, this.selfParticipant);
|
|
147
147
|
if (String(event).includes("1005") || String(event).includes("1001") || String(event).includes("1000")) {
|
|
148
148
|
this.onUserLeft();
|
|
149
149
|
}
|
|
@@ -219,7 +219,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
219
219
|
}
|
|
220
220
|
else if (paylod.type === WebSocketBasicEvents.UpdateParticipant) {
|
|
221
221
|
this.selfParticipant = paylod.data;
|
|
222
|
-
console.log(" WebSocketBasicEvents.UpdateParticipant", this.selfParticipant);
|
|
222
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" WebSocketBasicEvents.UpdateParticipant", this.selfParticipant);
|
|
223
223
|
RedisHandler_1.RedisHandler.getInstance().addUpdateParticipantForRoom(this.selfParticipant.roomId, this.selfParticipant);
|
|
224
224
|
this.redisBroadcastMessageToTopic(this.selfParticipant.roomId, this.preapreClientMessageBody(true, this.selfParticipant, this.preapreWebSocketMessageBody(WebSocketBasicEvents.OnParticipantUpdated, this.selfParticipant)));
|
|
225
225
|
}
|
|
@@ -235,7 +235,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
235
235
|
this.sendVaniEvent(Event_1.VaniEvent.OnNewChatMessageReceived, paylod);
|
|
236
236
|
}
|
|
237
237
|
closeRoomForcefully = async () => {
|
|
238
|
-
console.log(" closeRoomForcefully inside each");
|
|
238
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(" closeRoomForcefully inside each");
|
|
239
239
|
this.redisBroadcastMessageToTopic(this.selfParticipant?.roomId, this.preapreClientMessageBody(true, this.selfParticipant, this.preapreWebSocketMessageBody(WebSocketBasicEvents.CloseRoomForceFully, {})));
|
|
240
240
|
const roomId = this.selfParticipant?.roomId;
|
|
241
241
|
setTimeout(async () => {
|
|
@@ -278,7 +278,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
async onConfig(data) {
|
|
281
|
-
console.log("onConfig", data);
|
|
281
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onConfig", data);
|
|
282
282
|
if (data.participant) {
|
|
283
283
|
this.selfParticipant = Object.assign(new Participant_1.Participant(), data.participant);
|
|
284
284
|
this.selfParticipant.serverIpAddress = await Constant_1.default.getPublicIp();
|
|
@@ -368,9 +368,9 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
368
368
|
this.pingPongTimeout = undefined;
|
|
369
369
|
if (this.isUserJoinedFromAnotherSocket === false && this.selfParticipant && this.selfParticipant.roomId && this.selfParticipant.userId) {
|
|
370
370
|
if (this.numberOfPongWaiting > 10) {
|
|
371
|
-
console.log("No Pong More Than 8 Times start");
|
|
372
|
-
console.log(this.selfParticipant);
|
|
373
|
-
console.log("No Pong More Than 8 Times End");
|
|
371
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("No Pong More Than 8 Times start");
|
|
372
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log(this.selfParticipant);
|
|
373
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("No Pong More Than 8 Times End");
|
|
374
374
|
// isUserLeftMsgSent = true;
|
|
375
375
|
this.onUserLeft();
|
|
376
376
|
return;
|
|
@@ -410,7 +410,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
410
410
|
}
|
|
411
411
|
//Redis
|
|
412
412
|
async onNewUserJoinedRoomWithSameUserId(data) {
|
|
413
|
-
console.log("onNewUserJoinedRoomWithSameUserId Start");
|
|
413
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onNewUserJoinedRoomWithSameUserId Start");
|
|
414
414
|
const roomId = data.roomId;
|
|
415
415
|
const senderUUID = data.senderUUID;
|
|
416
416
|
const userId = data.userId;
|
|
@@ -419,7 +419,7 @@ class EachSocketConnectionHandler extends BaseSFUWebsocket_1.BaseSFUWebsocket {
|
|
|
419
419
|
this.isUserJoinedFromAnotherSocket = true;
|
|
420
420
|
this.socket.close(3006);
|
|
421
421
|
this.cleanUp();
|
|
422
|
-
console.log("onNewUserJoinedRoomWithSameUserId done");
|
|
422
|
+
ServerHandler_1.ServerHandler.getInstance().serverStartRequest && ServerHandler_1.ServerHandler.getInstance().serverStartRequest.logLevel !== WebSocketServerStartRequest_1.LogLevel.None && console.log("onNewUserJoinedRoomWithSameUserId done");
|
|
423
423
|
}
|
|
424
424
|
}
|
|
425
425
|
async sendMessageToClient(data) {
|
|
@@ -0,0 +1,18 @@
|
|
|
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;
|