diff --git a/WebServers/SFU/sfu_server.js b/WebServers/SFU/sfu_server.js index 3222ada..708fb06 100644 --- a/WebServers/SFU/sfu_server.js +++ b/WebServers/SFU/sfu_server.js @@ -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); }); } diff --git a/WebServers/SignallingWebServer/cirrus.js b/WebServers/SignallingWebServer/cirrus.js index ee0b2da..08b55bc 100644 --- a/WebServers/SignallingWebServer/cirrus.js +++ b/WebServers/SignallingWebServer/cirrus.js @@ -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