sfu, observer update
This commit is contained in:
@@ -27,8 +27,8 @@ module.exports = {
|
||||
"-PixelStreamingWebRTCDisableAudioSync",
|
||||
"-PixelStreamingHideCursor=true",
|
||||
"-PixelStreamingKeyFilter=ESC, CTRL",
|
||||
//"-SimulcastParameters=1.0,5000000,100000000,2.0,1000000,5000000,3.0,500000,2500000",
|
||||
//"-PixelStreamingHudStats=true" // usefull for debug
|
||||
"-SimulcastParameters=1.0,5000000,100000000,2.0,1000000,5000000,3.0,500000,2500000",
|
||||
"-PixelStreamingHudStats=true" // usefull for debug
|
||||
]
|
||||
}
|
||||
}
|
||||
+12
-13
@@ -19,7 +19,7 @@ const run_session = async (req, res, next) => {
|
||||
|
||||
let webrtc_port = await get_webrtc_port()
|
||||
let app_port = await get_app_port()
|
||||
let sfu_port = 8889//await get_sfu_port()
|
||||
let sfu_port = await get_sfu_port()
|
||||
|
||||
if (!app_port) {
|
||||
next(new server_error('all app ports busy'))
|
||||
@@ -27,11 +27,10 @@ const run_session = async (req, res, next) => {
|
||||
} else if (!webrtc_port) {
|
||||
next(new server_error('all webrtc ports busy'))
|
||||
return
|
||||
}
|
||||
// else if (!sfu_port) {
|
||||
// next(new server_error('all sfu ports busy'))
|
||||
// return
|
||||
// }
|
||||
} else if (!sfu_port) {
|
||||
next(new server_error('all sfu ports busy'))
|
||||
return
|
||||
}
|
||||
|
||||
let app_pid = await run_app(app_path, app_port)
|
||||
if (!app_pid) {
|
||||
@@ -48,13 +47,13 @@ const run_session = async (req, res, next) => {
|
||||
return
|
||||
}
|
||||
|
||||
let sfu_pid = null //await run_sfu(sfu_port)
|
||||
// if (!sfu_pid) {
|
||||
// kill_proc(app_pid)
|
||||
// kill_proc(webrtc_pid)
|
||||
// next(new server_error('can not run sfu'))
|
||||
// return
|
||||
// }
|
||||
let sfu_pid = await run_sfu(sfu_port)
|
||||
if (!sfu_pid) {
|
||||
kill_proc(app_pid)
|
||||
kill_proc(webrtc_pid)
|
||||
next(new server_error('can not run sfu'))
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
let add_runnning_session_result = await database.add_running_session(session_id, title, app_pid, webrtc_pid, sfu_pid, app_port, webrtc_port, sfu_port)
|
||||
|
||||
@@ -8,11 +8,23 @@ const {free_app_port, free_webrtc_port, free_sfu_port} = require('./port_alloc')
|
||||
const observer_timeout = 100
|
||||
let pending_list = new wait_list([])
|
||||
|
||||
const start_observer = () => {
|
||||
check()
|
||||
let can_check = true
|
||||
const block_time = 30000
|
||||
|
||||
const start_observer = async () => {
|
||||
if (can_check) {
|
||||
check()
|
||||
}
|
||||
setTimeout(() => start_observer(), observer_timeout)
|
||||
}
|
||||
|
||||
const block_for = (time) => {
|
||||
can_check = false
|
||||
setTimeout(() => {
|
||||
can_check = true
|
||||
}, time)
|
||||
}
|
||||
|
||||
// check sessions in parallel
|
||||
const check_sessions = async (sessions) => {
|
||||
|
||||
@@ -47,6 +59,7 @@ const check_sessions = async (sessions) => {
|
||||
await database.remove_running_session(session.session_id)
|
||||
} else {
|
||||
console.error('can not connect to coordinator')
|
||||
block_for(block_time)
|
||||
}
|
||||
pending_list.remove(session.session_id)
|
||||
}
|
||||
@@ -57,10 +70,11 @@ const check = async () => {
|
||||
let sessions = await database.get_running_sessions()
|
||||
|
||||
if (!sessions) {
|
||||
block_for(block_time)
|
||||
return
|
||||
}
|
||||
|
||||
check_sessions(sessions)
|
||||
await check_sessions(sessions)
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
|
||||
Reference in New Issue
Block a user