vani-meeting-server 2.4.5 → 2.4.7
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.d.ts +1 -0
- package/lib/ServerHandler.js +15 -0
- package/lib/lib/redis/RedisHandler.d.ts +1 -0
- package/lib/lib/redis/RedisHandler.js +3 -0
- package/lib/sfu/SFUHandler.d.ts +1 -0
- package/lib/sfu/SFUHandler.js +11 -0
- package/lib/websocket/WebSocketHandler.d.ts +1 -0
- package/lib/websocket/WebSocketHandler.js +5 -0
- package/package.json +1 -1
package/lib/ServerHandler.d.ts
CHANGED
|
@@ -32,5 +32,6 @@ export declare class ServerHandler {
|
|
|
32
32
|
getAllOnGoingMeetingRoomIds(): Promise<string[] | undefined>;
|
|
33
33
|
sendMessage(messagePayload: MessagePayload): Promise<void>;
|
|
34
34
|
getAllParticipatnsForRoomId(roomId: string): Promise<Participant[]>;
|
|
35
|
+
isServerWorking: () => Promise<boolean | undefined>;
|
|
35
36
|
closeTheRoomForcefully: (roomId: string) => Promise<void>;
|
|
36
37
|
}
|
package/lib/ServerHandler.js
CHANGED
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.ServerHandler = void 0;
|
|
7
|
+
const ws_1 = __importDefault(require("ws"));
|
|
4
8
|
const RedisHandler_1 = require("./lib/redis/RedisHandler");
|
|
5
9
|
const Participant_1 = require("./models/Participant");
|
|
6
10
|
const WebSocketServerStartRequest_1 = require("./models/WebSocketServerStartRequest");
|
|
@@ -50,6 +54,17 @@ class ServerHandler {
|
|
|
50
54
|
async getAllParticipatnsForRoomId(roomId) {
|
|
51
55
|
return await RedisHandler_1.RedisHandler.getInstance().getAllParticipants(roomId);
|
|
52
56
|
}
|
|
57
|
+
isServerWorking = async () => {
|
|
58
|
+
const isConnected = RedisHandler_1.RedisHandler.getInstance().isRedisConnected() && SFUHandler_1.SFUHandler.getInstance().isSFURunning() && this.webSocketHandler && this.webSocketHandler.lastKnownWebSocketStatusIsActive;
|
|
59
|
+
if (this.webSocketHandler) {
|
|
60
|
+
this.webSocketHandler.lastKnownWebSocketStatusIsActive = false;
|
|
61
|
+
const websocket = new ws_1.default("ws://localhost:" + this.serverStartRequest.port + "/?serverstatuscheck=true");
|
|
62
|
+
websocket.on('open', function open() {
|
|
63
|
+
websocket.close();
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
return isConnected;
|
|
67
|
+
};
|
|
53
68
|
closeTheRoomForcefully = async (roomId) => {
|
|
54
69
|
try {
|
|
55
70
|
console.log(" closeTheRoomForcefully called");
|
|
@@ -14,6 +14,7 @@ export declare class RedisHandler {
|
|
|
14
14
|
redisSubscriber: RedisClientType;
|
|
15
15
|
static getInstance(): RedisHandler;
|
|
16
16
|
init(): void;
|
|
17
|
+
isRedisConnected: () => boolean;
|
|
17
18
|
connectDB(): Promise<void>;
|
|
18
19
|
cleanUp(): Promise<string | undefined>;
|
|
19
20
|
cleanUpRoomId(roomId: string): Promise<void>;
|
|
@@ -35,6 +35,9 @@ class RedisHandler {
|
|
|
35
35
|
console.log("init", err);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
+
isRedisConnected = () => {
|
|
39
|
+
return this.redisClient.isReady && this.redisPublisher.isReady && this.redisSubscriber.isReady;
|
|
40
|
+
};
|
|
38
41
|
async connectDB() {
|
|
39
42
|
try {
|
|
40
43
|
this.redisClient.on("connect", (data) => {
|
package/lib/sfu/SFUHandler.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ export declare class SFUHandler {
|
|
|
7
7
|
private sfuRooms;
|
|
8
8
|
static getInstance(): SFUHandler;
|
|
9
9
|
constructor();
|
|
10
|
+
isSFURunning: () => boolean;
|
|
10
11
|
init(): Promise<void>;
|
|
11
12
|
checkAndSetupRoom(roomId: string, connectionProtocol: ConnectionProtocol): Promise<void>;
|
|
12
13
|
checkIfCanCloseRoom(roomId: string): Promise<void>;
|
package/lib/sfu/SFUHandler.js
CHANGED
|
@@ -42,6 +42,17 @@ class SFUHandler {
|
|
|
42
42
|
this.init = this.init.bind(this);
|
|
43
43
|
this.createWorkers = this.createWorkers.bind(this);
|
|
44
44
|
}
|
|
45
|
+
isSFURunning = () => {
|
|
46
|
+
if (this.workers.length > 0) {
|
|
47
|
+
for (const eachWorker of this.workers) {
|
|
48
|
+
if (!(eachWorker && eachWorker.closed === false && eachWorker.died === false)) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
};
|
|
45
56
|
async init() {
|
|
46
57
|
await this.createWorkers();
|
|
47
58
|
}
|
|
@@ -3,6 +3,7 @@ import { Participant } from "../models/Participant";
|
|
|
3
3
|
export declare class WebSocketHandler {
|
|
4
4
|
private wss;
|
|
5
5
|
private socketConnections;
|
|
6
|
+
lastKnownWebSocketStatusIsActive: boolean;
|
|
6
7
|
constructor();
|
|
7
8
|
connect(): void;
|
|
8
9
|
getSocketConnectionByParticpant: (participant: Participant) => EachSocketConnectionHandler | undefined;
|
|
@@ -13,6 +13,7 @@ const https_1 = require("https");
|
|
|
13
13
|
class WebSocketHandler {
|
|
14
14
|
wss;
|
|
15
15
|
socketConnections = [];
|
|
16
|
+
lastKnownWebSocketStatusIsActive = false;
|
|
16
17
|
constructor() {
|
|
17
18
|
if (ServerHandler_1.ServerHandler.getInstance().serverStartRequest.wssServerCertificateOption) {
|
|
18
19
|
this.wss = new ws_1.default.WebSocketServer({
|
|
@@ -26,7 +27,11 @@ class WebSocketHandler {
|
|
|
26
27
|
}
|
|
27
28
|
connect() {
|
|
28
29
|
this.wss.on("connection", (socket, req) => {
|
|
30
|
+
this.lastKnownWebSocketStatusIsActive = true;
|
|
29
31
|
console.log("On New Connection", req.url);
|
|
32
|
+
if (req.url && req.url.includes("serverstatuscheck")) {
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
30
35
|
const eachSocketConnection = new EachSocketConnectionHandler_1.EachSocketConnectionHandler(socket, req.url ? req.url.includes('reconnect') : false);
|
|
31
36
|
eachSocketConnection.init();
|
|
32
37
|
eachSocketConnection.onDestoryCallback((socketConnection) => {
|