From 521088ec60a47e9fc8aeb4c4925b50d5111af6e2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Simon=20D=C3=B6ring?= <simon.doering@stud.hs-bochum.de> Date: Fri, 5 Feb 2021 21:43:09 +0100 Subject: [PATCH] Disconnect sender socket when slot is deactivated --- .../src/io-interface/handlers/input-handlers.ts | 10 +++++++--- .../src/socket-io/handlers/sender-handlers.ts | 9 +++++++++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/camera-server/src/io-interface/handlers/input-handlers.ts b/camera-server/src/io-interface/handlers/input-handlers.ts index aeab520..4522f7f 100644 --- a/camera-server/src/io-interface/handlers/input-handlers.ts +++ b/camera-server/src/io-interface/handlers/input-handlers.ts @@ -1,11 +1,13 @@ import { socketIO } from '../../socket-io/socket-io'; import { cameraSlotState } from '../../state/camera-slot-state'; import { - emitRemoveFeed, emitSetAnnotation, emitRemoveAnnotation } from '../../socket-io/handlers/common-handlers'; -import { emitControllerBitrateLimit } from '../../socket-io/handlers/sender-handlers'; +import { + disconnectSocket, + emitControllerBitrateLimit +} from '../../socket-io/handlers/sender-handlers'; import { setBitrate } from '../../janus/handlers'; import { config } from '../../config/config'; @@ -63,7 +65,9 @@ const handleInternalCommand = ( return; } console.log('Deactivating slot ' + slot); - emitRemoveFeed(slot); + if (currentCameraState.feedActive) { + disconnectSocket(currentCameraState.senderSocketId!); + } currentCameraState.slotActive = false; currentCameraState.token = null; diff --git a/camera-server/src/socket-io/handlers/sender-handlers.ts b/camera-server/src/socket-io/handlers/sender-handlers.ts index e13ab46..691b1a4 100644 --- a/camera-server/src/socket-io/handlers/sender-handlers.ts +++ b/camera-server/src/socket-io/handlers/sender-handlers.ts @@ -8,6 +8,15 @@ import { setBitrate } from '../../janus/handlers'; import { socketIO } from '../socket-io'; import { config } from '../../config/config'; +export const disconnectSocket = (socketId: string) => { + const socket = socketIO.sockets.sockets.get(socketId); + if (socket) { + socket.disconnect(); + } else { + console.log('Error: Tried to disconnect socket that does not exist'); + } +}; + export const emitControllerBitrateLimit = ( socketId: string, bitrateLimit: number -- GitLab