diff --git a/camera-server/src/io-interface/handlers/input-handlers.ts b/camera-server/src/io-interface/handlers/input-handlers.ts index aeab520ccbc2bf68f76d45e367ed0113bcc170d3..4522f7f4a0303afc42ac81fe2ea9d20672a22e80 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 e13ab469d3681af6e8a9bc2c47d8c911f6d745ff..691b1a47a4ee40f4d8134c5606af2b57411ab3f5 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