sfu creation moved
This commit is contained in:
@@ -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);
|
||||
});
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user