vani-meeting-server 1.1.0 → 1.1.2
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 +27 -30
- package/lib/base/BaseSFUWebsocket.js +8 -15
- package/lib/index.js +19 -3
- package/lib/lib/redis/RedisHandler.js +87 -110
- package/lib/models/Event.js +5 -2
- package/lib/models/MessagePayload.js +18 -21
- package/lib/models/Participant.js +18 -19
- package/lib/models/WebSocketServerStartRequest.js +12 -10
- package/lib/sfu/SFUEachRoomHandler.js +91 -106
- package/lib/sfu/SFUEachRoomUserHandler.js +239 -264
- package/lib/sfu/SFUHandler.js +51 -39
- package/lib/utility/Constant.js +23 -30
- package/lib/utility/EventEmitterHandler.js +8 -6
- package/lib/utility/VaniEventListener.js +29 -2
- package/lib/websocket/EachSocketConnectionHandler.js +235 -276
- package/lib/websocket/WebSocketHandler.js +15 -10
- package/package.json +1 -2
package/lib/ServerHandler.d.ts
CHANGED
package/lib/ServerHandler.js
CHANGED
|
@@ -1,35 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
export class ServerHandler {
|
|
15
|
-
constructor() {
|
|
16
|
-
this.serverStartRequest = new WebSocketServerStartRequest();
|
|
17
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ServerHandler = void 0;
|
|
4
|
+
const RedisHandler_1 = require("./lib/redis/RedisHandler");
|
|
5
|
+
const WebSocketServerStartRequest_1 = require("./models/WebSocketServerStartRequest");
|
|
6
|
+
const SFUHandler_1 = require("./sfu/SFUHandler");
|
|
7
|
+
const WebSocketHandler_1 = require("./websocket/WebSocketHandler");
|
|
8
|
+
class ServerHandler {
|
|
9
|
+
serverStartRequest = new WebSocketServerStartRequest_1.WebSocketServerStartRequest();
|
|
10
|
+
rediHandler;
|
|
11
|
+
webSocketHandler;
|
|
12
|
+
sfuHandler;
|
|
13
|
+
static instance = new ServerHandler();
|
|
18
14
|
static getInstance() {
|
|
19
15
|
return ServerHandler.instance;
|
|
20
16
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
17
|
+
constructor() {
|
|
18
|
+
console.log("ServerHandler constructor");
|
|
19
|
+
}
|
|
20
|
+
async initWithServerStartRequest(serverStartRequest) {
|
|
21
|
+
this.serverStartRequest = serverStartRequest;
|
|
22
|
+
this.rediHandler = RedisHandler_1.RedisHandler.getInstance();
|
|
23
|
+
await this.rediHandler.connectDB();
|
|
24
|
+
await this.rediHandler.cleanUp();
|
|
25
|
+
console.info("On Redis Connected");
|
|
26
|
+
this.webSocketHandler = new WebSocketHandler_1.WebSocketHandler();
|
|
27
|
+
this.webSocketHandler.connect();
|
|
28
|
+
this.sfuHandler = SFUHandler_1.SFUHandler.getInstance();
|
|
29
|
+
this.sfuHandler.init();
|
|
33
30
|
}
|
|
34
31
|
}
|
|
35
|
-
ServerHandler
|
|
32
|
+
exports.ServerHandler = ServerHandler;
|
|
@@ -1,18 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { RedisHandler } from "../lib/redis/RedisHandler";
|
|
11
|
-
export class BaseSFUWebsocket {
|
|
12
|
-
redisBroadcastMessageToTopic(topic, data) {
|
|
13
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
-
RedisHandler.getInstance().redisPublisher.publish(topic, JSON.stringify(data));
|
|
15
|
-
});
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.BaseSFUWebsocket = void 0;
|
|
4
|
+
const RedisHandler_1 = require("../lib/redis/RedisHandler");
|
|
5
|
+
class BaseSFUWebsocket {
|
|
6
|
+
async redisBroadcastMessageToTopic(topic, data) {
|
|
7
|
+
RedisHandler_1.RedisHandler.getInstance().redisPublisher.publish(topic, JSON.stringify(data));
|
|
16
8
|
}
|
|
17
9
|
//Utilility function
|
|
18
10
|
preapreClientMessageBody(shouldSendToSelf, senderParticipant, broadcastMessage) {
|
|
@@ -22,3 +14,4 @@ export class BaseSFUWebsocket {
|
|
|
22
14
|
return { type, data, interfaceName: 'WebSocketMessageBody' };
|
|
23
15
|
}
|
|
24
16
|
}
|
|
17
|
+
exports.BaseSFUWebsocket = BaseSFUWebsocket;
|
package/lib/index.js
CHANGED
|
@@ -1,3 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./models/Event"), exports);
|
|
18
|
+
__exportStar(require("./models/WebSocketServerStartRequest"), exports);
|
|
19
|
+
__exportStar(require("./ServerHandler"), exports);
|
|
@@ -1,135 +1,112 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { createClient } from "redis";
|
|
11
|
-
import { Participant } from "../../models/Participant";
|
|
12
|
-
import { ServerHandler } from "../../ServerHandler";
|
|
13
|
-
export var RedisKeyType;
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RedisHandler = exports.RedisKeyType = void 0;
|
|
4
|
+
const redis_1 = require("redis");
|
|
5
|
+
const Participant_1 = require("../../models/Participant");
|
|
6
|
+
const ServerHandler_1 = require("../../ServerHandler");
|
|
7
|
+
var RedisKeyType;
|
|
14
8
|
(function (RedisKeyType) {
|
|
15
9
|
RedisKeyType["Messages"] = "messages";
|
|
16
10
|
RedisKeyType["MeetingTime"] = "meetingTime";
|
|
17
11
|
RedisKeyType["Participants"] = "participants";
|
|
18
|
-
})(RedisKeyType || (RedisKeyType = {}));
|
|
19
|
-
|
|
12
|
+
})(RedisKeyType = exports.RedisKeyType || (exports.RedisKeyType = {}));
|
|
13
|
+
class RedisHandler {
|
|
14
|
+
static redisHandler = new RedisHandler();
|
|
15
|
+
redisClient;
|
|
16
|
+
// private redisRoomModelHash = new Map<string, RedisRoomModel>;
|
|
17
|
+
redisPublisher;
|
|
18
|
+
redisSubscriber;
|
|
20
19
|
constructor() {
|
|
21
|
-
this.redisClient = createClient({ url: ServerHandler.getInstance().serverStartRequest.redisUrl, database: ServerHandler.getInstance().serverStartRequest.redisDBIndex });
|
|
22
|
-
this.redisSubscriber = createClient({ url: ServerHandler.getInstance().serverStartRequest.redisUrl });
|
|
23
|
-
this.redisPublisher = createClient({ url: ServerHandler.getInstance().serverStartRequest.redisUrl });
|
|
20
|
+
this.redisClient = (0, redis_1.createClient)({ url: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisUrl, database: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisDBIndex });
|
|
21
|
+
this.redisSubscriber = (0, redis_1.createClient)({ url: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisUrl });
|
|
22
|
+
this.redisPublisher = (0, redis_1.createClient)({ url: ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisUrl });
|
|
24
23
|
}
|
|
25
24
|
static getInstance() {
|
|
26
25
|
return this.redisHandler;
|
|
27
26
|
}
|
|
28
|
-
connectDB() {
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
console.info('Redis has been connected successfully.', data);
|
|
32
|
-
});
|
|
33
|
-
this.redisClient.on('end', (err) => {
|
|
34
|
-
console.error('Redis connection has been closed.', err);
|
|
35
|
-
});
|
|
36
|
-
this.redisClient.on('error', (err) => {
|
|
37
|
-
console.error('Unknown exception occurred at Redis', err);
|
|
38
|
-
});
|
|
39
|
-
yield this.redisClient.connect();
|
|
40
|
-
yield this.redisSubscriber.connect();
|
|
41
|
-
yield this.redisPublisher.connect();
|
|
42
|
-
// await this.redisClient.hSet("rooms","123","HSETObject")
|
|
43
|
-
// console.log(await this.redisClient.hGet("rooms","123"))
|
|
27
|
+
async connectDB() {
|
|
28
|
+
this.redisClient.on("connect", (data) => {
|
|
29
|
+
console.info('Redis has been connected successfully.', data);
|
|
44
30
|
});
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
31
|
+
this.redisClient.on('end', (err) => {
|
|
32
|
+
console.error('Redis connection has been closed.', err);
|
|
33
|
+
});
|
|
34
|
+
this.redisClient.on('error', (err) => {
|
|
35
|
+
console.error('Unknown exception occurred at Redis', err);
|
|
49
36
|
});
|
|
37
|
+
await this.redisClient.connect();
|
|
38
|
+
await this.redisSubscriber.connect();
|
|
39
|
+
await this.redisPublisher.connect();
|
|
40
|
+
// await this.redisClient.hSet("rooms","123","HSETObject")
|
|
41
|
+
// console.log(await this.redisClient.hGet("rooms","123"))
|
|
42
|
+
}
|
|
43
|
+
async cleanUp() {
|
|
44
|
+
return await this.redisClient.flushDb();
|
|
50
45
|
}
|
|
51
46
|
//Clean Room Id
|
|
52
|
-
cleanUpRoomId(roomId) {
|
|
53
|
-
|
|
54
|
-
yield this.redisClient.del(roomId);
|
|
55
|
-
});
|
|
47
|
+
async cleanUpRoomId(roomId) {
|
|
48
|
+
await this.redisClient.del(roomId);
|
|
56
49
|
}
|
|
57
50
|
//Messages
|
|
58
|
-
storeMesagesForRoom(roomId, messagePayload) {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
this.updateRoomCleanupTimeOut(roomId);
|
|
64
|
-
});
|
|
51
|
+
async storeMesagesForRoom(roomId, messagePayload) {
|
|
52
|
+
const messages = await this.fetchMessagesForRoom(roomId);
|
|
53
|
+
messages.push(messagePayload);
|
|
54
|
+
await this.redisClient.hSet(roomId, RedisKeyType.Messages, JSON.stringify(messages));
|
|
55
|
+
this.updateRoomCleanupTimeOut(roomId);
|
|
65
56
|
}
|
|
66
|
-
fetchMessagesForRoom(roomId) {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
}
|
|
75
|
-
});
|
|
57
|
+
async fetchMessagesForRoom(roomId) {
|
|
58
|
+
const messages = await this.redisClient.hGet(roomId, RedisKeyType.Messages);
|
|
59
|
+
if (messages) {
|
|
60
|
+
return JSON.parse(messages);
|
|
61
|
+
}
|
|
62
|
+
else {
|
|
63
|
+
return [];
|
|
64
|
+
}
|
|
76
65
|
}
|
|
77
66
|
//Meeting Time
|
|
78
|
-
storeMeetingTimeForRoom(roomId, time) {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
this.updateRoomCleanupTimeOut(roomId);
|
|
82
|
-
});
|
|
67
|
+
async storeMeetingTimeForRoom(roomId, time) {
|
|
68
|
+
await this.redisClient.hSet(roomId, RedisKeyType.MeetingTime, time ? time : new Date().getTime());
|
|
69
|
+
this.updateRoomCleanupTimeOut(roomId);
|
|
83
70
|
}
|
|
84
|
-
fetchMeetingTimeForRoom(roomId) {
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
}
|
|
93
|
-
});
|
|
71
|
+
async fetchMeetingTimeForRoom(roomId) {
|
|
72
|
+
const meetingTime = await this.redisClient.hGet(roomId, RedisKeyType.MeetingTime);
|
|
73
|
+
if (meetingTime) {
|
|
74
|
+
return +meetingTime;
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
94
79
|
}
|
|
95
80
|
//Users
|
|
96
|
-
removeParticipantForRoom(roomId, participant) {
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
this.updateRoomCleanupTimeOut(roomId);
|
|
101
|
-
});
|
|
81
|
+
async removeParticipantForRoom(roomId, participant) {
|
|
82
|
+
const participantKey = RedisKeyType.Participants + ":" + participant.userId;
|
|
83
|
+
await this.redisClient.hDel(roomId, participantKey);
|
|
84
|
+
this.updateRoomCleanupTimeOut(roomId);
|
|
102
85
|
}
|
|
103
|
-
addUpdateParticipantForRoom(roomId, participant) {
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
this.updateRoomCleanupTimeOut(roomId);
|
|
108
|
-
});
|
|
86
|
+
async addUpdateParticipantForRoom(roomId, participant) {
|
|
87
|
+
const participantKey = RedisKeyType.Participants + ":" + participant.userId;
|
|
88
|
+
await this.redisClient.hSet(roomId, participantKey, JSON.stringify(participant));
|
|
89
|
+
this.updateRoomCleanupTimeOut(roomId);
|
|
109
90
|
}
|
|
110
|
-
getParticipantByUserId(roomId, userId) {
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
return undefined;
|
|
118
|
-
});
|
|
91
|
+
async getParticipantByUserId(roomId, userId) {
|
|
92
|
+
const participantKey = RedisKeyType.Participants + ":" + userId;
|
|
93
|
+
const particpantString = await this.redisClient.hGet(roomId, participantKey);
|
|
94
|
+
if (particpantString) {
|
|
95
|
+
return JSON.parse(particpantString);
|
|
96
|
+
}
|
|
97
|
+
return undefined;
|
|
119
98
|
}
|
|
120
|
-
getAllParticipants(roomId) {
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
return participants;
|
|
132
|
-
});
|
|
99
|
+
async getAllParticipants(roomId) {
|
|
100
|
+
const particpantsInStringify = await this.redisClient.hGetAll(roomId);
|
|
101
|
+
const participants = [];
|
|
102
|
+
if (particpantsInStringify) {
|
|
103
|
+
Object.entries(particpantsInStringify).forEach(([key, value]) => {
|
|
104
|
+
if (key.includes(RedisKeyType.Participants)) {
|
|
105
|
+
participants.push(Object.assign(new Participant_1.Participant(), JSON.parse(value)));
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
return participants;
|
|
133
110
|
}
|
|
134
111
|
// private getRediRoomModelForRoomId(roomId: string): RedisRoomModel {
|
|
135
112
|
// if (this.redisRoomModelHash.has(roomId)) {
|
|
@@ -142,7 +119,7 @@ export class RedisHandler {
|
|
|
142
119
|
// }
|
|
143
120
|
// }
|
|
144
121
|
updateRoomCleanupTimeOut(roomId) {
|
|
145
|
-
this.redisClient.expire(roomId, ServerHandler.getInstance().serverStartRequest.redisRoomDestoryTimeOutInSec);
|
|
122
|
+
this.redisClient.expire(roomId, ServerHandler_1.ServerHandler.getInstance().serverStartRequest.redisRoomDestoryTimeOutInSec);
|
|
146
123
|
}
|
|
147
124
|
}
|
|
148
|
-
RedisHandler
|
|
125
|
+
exports.RedisHandler = RedisHandler;
|
package/lib/models/Event.js
CHANGED
|
@@ -1,8 +1,11 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.VaniEvent = void 0;
|
|
4
|
+
var VaniEvent;
|
|
2
5
|
(function (VaniEvent) {
|
|
3
6
|
VaniEvent["OnNewMeetingStarted"] = "onNewMeetingStarted";
|
|
4
7
|
VaniEvent["OnNewMeetingEnded"] = "onNewMeetingEnded";
|
|
5
8
|
VaniEvent["OnUserJoined"] = "onUserJoined";
|
|
6
9
|
VaniEvent["OnUserLeft"] = "onUserLeft";
|
|
7
10
|
VaniEvent["OnServerStarted"] = "onServerStarted";
|
|
8
|
-
})(VaniEvent || (VaniEvent = {}));
|
|
11
|
+
})(VaniEvent = exports.VaniEvent || (exports.VaniEvent = {}));
|
|
@@ -1,29 +1,26 @@
|
|
|
1
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MessagePayload = exports.ChatSendVia = exports.ChatMessageType = void 0;
|
|
4
|
+
var ChatMessageType;
|
|
2
5
|
(function (ChatMessageType) {
|
|
3
6
|
ChatMessageType["Chat"] = "chat";
|
|
4
7
|
ChatMessageType["File"] = "file";
|
|
5
8
|
ChatMessageType["Info"] = "info";
|
|
6
|
-
})(ChatMessageType || (ChatMessageType = {}));
|
|
7
|
-
|
|
9
|
+
})(ChatMessageType = exports.ChatMessageType || (exports.ChatMessageType = {}));
|
|
10
|
+
var ChatSendVia;
|
|
8
11
|
(function (ChatSendVia) {
|
|
9
12
|
ChatSendVia["WebSocket"] = "WebSocket";
|
|
10
13
|
ChatSendVia["DataChannel"] = "DataChannel";
|
|
11
|
-
})(ChatSendVia || (ChatSendVia = {}));
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
// constructor(_message : string , _to: string = "all" , _sender ? : Participant , _type : ChatMessageType | string = ChatMessageType.Chat) {
|
|
23
|
-
// this.message = _message;
|
|
24
|
-
// this.to = _to;
|
|
25
|
-
// this.sender = _sender;
|
|
26
|
-
// this.type = _type;
|
|
27
|
-
// }
|
|
28
|
-
}
|
|
14
|
+
})(ChatSendVia = exports.ChatSendVia || (exports.ChatSendVia = {}));
|
|
15
|
+
class MessagePayload {
|
|
16
|
+
message;
|
|
17
|
+
to = "all";
|
|
18
|
+
extraData = {};
|
|
19
|
+
type;
|
|
20
|
+
senderUserId;
|
|
21
|
+
// public sender? :Participant;
|
|
22
|
+
shouldPresist = false;
|
|
23
|
+
time = new Date().getTime();
|
|
24
|
+
chatSendVia = ChatSendVia.WebSocket;
|
|
29
25
|
}
|
|
26
|
+
exports.MessagePayload = MessagePayload;
|
|
@@ -1,20 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
// }
|
|
19
|
-
}
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Participant = void 0;
|
|
4
|
+
class Participant {
|
|
5
|
+
userId;
|
|
6
|
+
userData;
|
|
7
|
+
isAdmin = false;
|
|
8
|
+
isAudioBlockedByAdmin = false;
|
|
9
|
+
isVideoBlockedByAdmin = false;
|
|
10
|
+
isMessageBlockedByAdmin = false;
|
|
11
|
+
isWhiteboardBlockedByAdmin = true;
|
|
12
|
+
isScreenshareBlockedByAdmin = false;
|
|
13
|
+
roomId;
|
|
14
|
+
isVideoEnable = false;
|
|
15
|
+
isAudioEnable = false;
|
|
16
|
+
isStartMeetingCalled = false;
|
|
17
|
+
isRecordingUser = false;
|
|
20
18
|
}
|
|
19
|
+
exports.Participant = Participant;
|
|
@@ -1,11 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.WebSocketServerStartRequest = void 0;
|
|
4
|
+
class WebSocketServerStartRequest {
|
|
5
|
+
port = 4010;
|
|
6
|
+
redisUrl = "redis://127.0.0.1:6378";
|
|
7
|
+
redisDBIndex = 5;
|
|
8
|
+
redisRoomDestoryTimeOutInSec = 1800;
|
|
9
|
+
rtcMinPort = 40000;
|
|
10
|
+
rtcMaxPort = 59999;
|
|
11
|
+
isTCPConnection = false;
|
|
11
12
|
}
|
|
13
|
+
exports.WebSocketServerStartRequest = WebSocketServerStartRequest;
|