sfu creation moved

This commit is contained in:
2023-04-20 09:02:05 +03:00
parent 59fd36374f
commit f04683e21e
2 changed files with 11 additions and 33 deletions
+3 -6
View File
@@ -1,12 +1,13 @@
var server_settings = process.argv.slice(2)
if (!server_settings) {
console.log('not enough arguments, exit()')
process.exit(1)
}
try {
server_settings = JSON.parse(server_settings)
} catch (err) {
console.log('can not process arguments')
console.log('can not process arguments, exit()')
process.exit(1)
}
@@ -25,17 +26,13 @@ function connectSignalling(server) {
console.log("Connecting to Signalling Server at %s", server);
signalServer = new WebSocket(server);
signalServer.addEventListener("open", _ => { console.log(`Connected to signalling server`); });
signalServer.addEventListener("error", result => { console.log(`Error: ${result.message}`); process.exit()});
signalServer.addEventListener("error", result => { console.log(`Error: ${result.message}`); });
signalServer.addEventListener("message", result => onSignallingMessage(result.data));
signalServer.addEventListener("close", result => {
console.log(`Disconnected from signalling server: ${result.code} ${result.reason}`);
console.log("Attempting reconnect to signalling server...");
process.exit()
let death_count = 0
setTimeout(()=> {
connectSignalling(server);
if ((++death_count) > 2)
process.exit()
}, 2000);
});
}
+8 -27
View File
@@ -16,7 +16,6 @@ try {
var express = require('express');
var app = express();
const {fork} = require('node:child_process')
const fs = require('fs');
const path = require('path');
const querystring = require('querystring');
@@ -58,29 +57,6 @@ config.SFUPort = server_settings.sfu_port
const session_server_url = server_settings.session_server_url
const session_id = server_settings.session_id
const useSFU = true
console.log('useSFU: ', useSFU)
function runSFU() {
const sfu_file_path = __dirname + '/../SFU/sfu_server.js'
if (!fs.existsSync(sfu_file_path)) {
console.logColor(logging.Red, 'can not run sfu: sfu file not exists!')
return
}
try {
var sfu_proc_args = JSON.stringify({sfu_port:config.SFUPort})
fork(sfu_file_path, [sfu_proc_args], {
detached: true
})
} catch (err) {
console.error(err)
return null
}
}
if (useSFU) {
runSFU()
}
if (config.LogToFile) {
logging.RegisterFileLogger('./logs/');
@@ -585,8 +561,11 @@ const update_users_count = async () => {
session_server_url + '/cirrus/update_users_count',
{ json: { session_id: session_id, users_count: playerCount } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
// if (!error && response.statusCode == 200) {
// console.log(body);
// }
if (error) {
console.log(error)
}
}
)
@@ -597,7 +576,7 @@ const update_users_count = async () => {
const check_players = () => {
// update player count on session server
update_users_count()
//update_users_count()
// if first player connection timeout reached destory session
@@ -663,6 +642,7 @@ playerServer.on('connection', function (ws, req) {
}
++playerCount;
update_users_count()
let playerId = (++nextPlayerId).toString();
console.logColor(logging.Green, `player ${playerId} (${req.connection.remoteAddress}) connected`);
players.set(playerId, { ws: ws, id: playerId });
@@ -731,6 +711,7 @@ playerServer.on('connection', function (ws, req) {
function onPlayerDisconnected() {
try {
--playerCount;
update_users_count()
const player = players.get(playerId);
if (player.datachannel) {
// have to notify the streamer that the datachannel can be closed