session close added

This commit is contained in:
C
2022-11-30 16:07:56 +05:00
parent 12080c106a
commit 288718779d
14 changed files with 29 additions and 4 deletions
@@ -0,0 +1,8 @@
завершение сессии:
WebRTC завершает своё выполнение если пользователи неактивны в течение N секунд
Session Server видит что WebRTC сервер завершил выполнение, отправляет уведомление Coordinator
Coordinator удаляет сессию из базы данных
продление сессии:
WebRTC сервер понимает что сессия подходит к концу спрашивает у Session Server продолжения сессии
Session Server отправляет запрос на продление сессии Coordinator
Coordinator смотрит можно ли продлить сессию и возвращает ответ
@@ -1,5 +1,5 @@
{
"ip" : "127.0.0.1",
"ip" : "192.168.1.115",
"port" : "3001",
"mongodb_url" : "mongodb://127.0.0.1:27017/",
"database_name" : "pixel_streaming"
@@ -70,7 +70,7 @@ async function create_response(request, callback) {
// create session on session server
new http_client(free_server.ip, free_server.port).post(
`{"verb":"CREATE_SESSION", "title":"${request.title}", "session_id":"${session_id}"}`, async function(answer) {
JSON.stringify({verb:'CREATE_SESSION', title:request.title, session_id:session_id}), async function(answer) {
var json_answer = await JSON.parse(answer)
@@ -90,7 +90,7 @@ async function create_response(request, callback) {
await session_active.insertOne({
server_id:free_server.server_id,
session_id:session_id,
link:json_answer.link,
connection_link:json_answer.link,
connection_code:code
})
response = {msg:'SESSION_CREATED', link:json_answer.link}
@@ -106,6 +106,11 @@ async function create_response(request, callback) {
} else if (request.verb == 'CONNECT_SESSION') {
callback(response)
return
} else if (request.verb == 'CLOSE_SESSION') {
await database.collection('session_active').deleteOne({session_id:request.session_id})
response = {msg:"SESSION_CLOSED", session_id:request.session_id}
callback(response)
return
} else {
response = {msg:'UNKNOWN_VERB'}
callback(response)
@@ -7,6 +7,7 @@ module.exports = class http_client {
}
async post(data, callback_answer, callback_error) {
// Build the post string from an object
// An object of options to indicate where to post to
var post_options = {
host: this.#ip,
@@ -6,6 +6,10 @@
"app_begin": 47000,
"http_begin": 47500
},
"coordinator":{
"ip":"192.168.1.115",
"port":3001
},
"webrtc_args_static":{
"cirrus_path":"D:/shared/Builds/Ivaz_Optimized_2/Samples/PixelStreaming/WebServers/SignallingWebServer/cirrus.js"
},
@@ -88,7 +88,14 @@ async function create_response(request, callback) {
else {
app_proc.kill('SIGINT')
}
//new http_client(ip, port).post()
new http_client(config.coordinator.ip, config.coordinator.port).post(
JSON.stringify({verb:'CLOSE_SESSION', session_id:request.session_id}), function(answer) {
},
function(error) {
})
})
response = {msg:'SESSION_CREATED', link:`http://${config.ip+':'+http_port}`}