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