10 Commits

Author SHA1 Message Date
EgorSuv c882119d75 sfu update 2023-05-19 03:48:10 +03:00
EgorSuv d3260522f4 signalling server update 2023-05-19 01:59:50 +03:00
EgorSuv a0a4ca1cc0 SFU update 2023-05-19 01:56:43 +03:00
EgorSuv 70c0cb90bb SFU moved 2023-05-19 01:55:48 +03:00
EgorSuv 343365dc3b moved to root directory 2023-05-19 00:40:28 +03:00
EgorSuv 32a278fc93 merge 2023-04-25 17:01:15 +03:00
EgorSuv 53f6c8aacf Merge branch 'master' of http://212.220.216.185:3000/GraffTech/pixel-streaming-webrtc 2023-04-25 16:59:30 +03:00
EgorSuv b4ddd2b4b6 sfu disabled 2023-04-25 16:58:51 +03:00
EgorSuv 33f8ee42bc Update 'WebServers/SFU/sfu_server.js'
fast disable SFU
2023-04-20 15:11:57 +05:00
EgorSuv f04683e21e sfu creation moved 2023-04-20 09:02:05 +03:00
137 changed files with 15 additions and 94 deletions
@@ -1,17 +1,18 @@
var server_settings = process.argv.slice(2)
if (!server_settings) {
console.log('not enough arguments, exit()')
process.exit(1)
}
try {
server_settings = JSON.parse(server_settings)
} catch (err) {
console.log('can not process arguments')
console.log('can not process arguments, exit()')
process.exit(1)
}
const config = require('./config');
config.signallingURL = 'ws://localhost:' + server_settings.sfu_port
config.signallingURL = 'ws://127.0.0.1:' + server_settings.sfu_port
const WebSocket = require('ws');
const mediasoup = require('mediasoup_prebuilt');
const mediasoupSdp = require('mediasoup-sdp-bridge');
@@ -25,17 +26,13 @@ function connectSignalling(server) {
console.log("Connecting to Signalling Server at %s", server);
signalServer = new WebSocket(server);
signalServer.addEventListener("open", _ => { console.log(`Connected to signalling server`); });
signalServer.addEventListener("error", result => { console.log(`Error: ${result.message}`); process.exit()});
signalServer.addEventListener("error", result => { console.log(`Error: ${result.message}`); });
signalServer.addEventListener("message", result => onSignallingMessage(result.data));
signalServer.addEventListener("close", result => {
console.log(`Disconnected from signalling server: ${result.code} ${result.reason}`);
console.log("Attempting reconnect to signalling server...");
process.exit()
let death_count = 0
setTimeout(()=> {
connectSignalling(server);
if ((++death_count) > 2)
process.exit()
}, 2000);
});
}
@@ -87,7 +84,7 @@ function getNextStreamerSCTPId() {
}
function onStreamerDisconnected() {
console.log("Streamer disconnected");
console.log("Streamer disconnected from SFU");
disconnectAllPeers();
if (streamer != null) {

Before

Width:  |  Height:  |  Size: 241 B

After

Width:  |  Height:  |  Size: 241 B

Before

Width:  |  Height:  |  Size: 155 B

After

Width:  |  Height:  |  Size: 155 B

@@ -16,7 +16,6 @@ try {
var express = require('express');
var app = express();
const {fork} = require('node:child_process')
const fs = require('fs');
const path = require('path');
const querystring = require('querystring');
@@ -57,30 +56,7 @@ config.HttpPort = server_settings.webrtc_port
config.SFUPort = server_settings.sfu_port
const session_server_url = server_settings.session_server_url
const session_id = server_settings.session_id
const useSFU = true
console.log('useSFU: ', useSFU)
function runSFU() {
const sfu_file_path = __dirname + '/../SFU/sfu_server.js'
if (!fs.existsSync(sfu_file_path)) {
console.logColor(logging.Red, 'can not run sfu: sfu file not exists!')
return
}
try {
var sfu_proc_args = JSON.stringify({sfu_port:config.SFUPort})
fork(sfu_file_path, [sfu_proc_args], {
detached: true
})
} catch (err) {
console.error(err)
return null
}
}
if (useSFU) {
runSFU()
}
const useSFU = true // sfu disabled
if (config.LogToFile) {
logging.RegisterFileLogger('./logs/');
@@ -585,8 +561,11 @@ const update_users_count = async () => {
session_server_url + '/cirrus/update_users_count',
{ json: { session_id: session_id, users_count: playerCount } },
function (error, response, body) {
if (!error && response.statusCode == 200) {
console.log(body);
// if (!error && response.statusCode == 200) {
// console.log(body);
// }
if (error) {
console.log(error)
}
}
)
@@ -597,7 +576,7 @@ const update_users_count = async () => {
const check_players = () => {
// update player count on session server
update_users_count()
//update_users_count()
// if first player connection timeout reached destory session
@@ -663,6 +642,7 @@ playerServer.on('connection', function (ws, req) {
}
++playerCount;
update_users_count()
let playerId = (++nextPlayerId).toString();
console.logColor(logging.Green, `player ${playerId} (${req.connection.remoteAddress}) connected`);
players.set(playerId, { ws: ws, id: playerId });
@@ -731,6 +711,7 @@ playerServer.on('connection', function (ws, req) {
function onPlayerDisconnected() {
try {
--playerCount;
update_users_count()
const player = players.get(playerId);
if (player.datachannel) {
// have to notify the streamer that the datachannel can be closed

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

Before

Width:  |  Height:  |  Size: 959 B

After

Width:  |  Height:  |  Size: 959 B

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before

Width:  |  Height:  |  Size: 5.5 KiB

After

Width:  |  Height:  |  Size: 5.5 KiB

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Some files were not shown because too many files have changed in this diff Show More