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",
|
"port" : "3001",
|
||||||
"mongodb_url" : "mongodb://127.0.0.1:27017/",
|
"mongodb_url" : "mongodb://127.0.0.1:27017/",
|
||||||
"database_name" : "pixel_streaming"
|
"database_name" : "pixel_streaming"
|
||||||
@@ -70,7 +70,7 @@ async function create_response(request, callback) {
|
|||||||
|
|
||||||
// create session on session server
|
// create session on session server
|
||||||
new http_client(free_server.ip, free_server.port).post(
|
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)
|
var json_answer = await JSON.parse(answer)
|
||||||
|
|
||||||
@@ -90,7 +90,7 @@ async function create_response(request, callback) {
|
|||||||
await session_active.insertOne({
|
await session_active.insertOne({
|
||||||
server_id:free_server.server_id,
|
server_id:free_server.server_id,
|
||||||
session_id:session_id,
|
session_id:session_id,
|
||||||
link:json_answer.link,
|
connection_link:json_answer.link,
|
||||||
connection_code:code
|
connection_code:code
|
||||||
})
|
})
|
||||||
response = {msg:'SESSION_CREATED', link:json_answer.link}
|
response = {msg:'SESSION_CREATED', link:json_answer.link}
|
||||||
@@ -106,6 +106,11 @@ async function create_response(request, callback) {
|
|||||||
} else if (request.verb == 'CONNECT_SESSION') {
|
} else if (request.verb == 'CONNECT_SESSION') {
|
||||||
callback(response)
|
callback(response)
|
||||||
return
|
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 {
|
} else {
|
||||||
response = {msg:'UNKNOWN_VERB'}
|
response = {msg:'UNKNOWN_VERB'}
|
||||||
callback(response)
|
callback(response)
|
||||||
@@ -7,6 +7,7 @@ module.exports = class http_client {
|
|||||||
}
|
}
|
||||||
async post(data, callback_answer, callback_error) {
|
async post(data, callback_answer, callback_error) {
|
||||||
// Build the post string from an object
|
// Build the post string from an object
|
||||||
|
|
||||||
// An object of options to indicate where to post to
|
// An object of options to indicate where to post to
|
||||||
var post_options = {
|
var post_options = {
|
||||||
host: this.#ip,
|
host: this.#ip,
|
||||||
@@ -6,6 +6,10 @@
|
|||||||
"app_begin": 47000,
|
"app_begin": 47000,
|
||||||
"http_begin": 47500
|
"http_begin": 47500
|
||||||
},
|
},
|
||||||
|
"coordinator":{
|
||||||
|
"ip":"192.168.1.115",
|
||||||
|
"port":3001
|
||||||
|
},
|
||||||
"webrtc_args_static":{
|
"webrtc_args_static":{
|
||||||
"cirrus_path":"D:/shared/Builds/Ivaz_Optimized_2/Samples/PixelStreaming/WebServers/SignallingWebServer/cirrus.js"
|
"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 {
|
else {
|
||||||
app_proc.kill('SIGINT')
|
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}`}
|
response = {msg:'SESSION_CREATED', link:`http://${config.ip+':'+http_port}`}
|
||||||
Reference in New Issue
Block a user