session close added
This commit is contained in:
@@ -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"
|
||||
},
|
||||
+8
-1
@@ -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}`}
|
||||
Reference in New Issue
Block a user