#4
All checks were successful
Deploy / deploy (push) Successful in 44s

This commit is contained in:
Никита Круглицкий
2025-10-03 02:36:38 +06:00
parent 7cecf0641f
commit c365f3e885
3 changed files with 32 additions and 14 deletions

View File

@@ -57,6 +57,7 @@ interface ClientToServerEvents extends Record<string, any> {
interface ServerToClientEvents {
producers: (arg: ProducerShort[]) => void
newProducer: (arg: ProducerShort) => void
producerClosed: (arg: types.Producer['id']) => void
}
const transports = new Map<string, types.WebRtcTransport[]>()
@@ -167,7 +168,8 @@ export default function (io: SocketServer, router: types.Router) {
cb({ producerId: producer.id })
socket.broadcast.emit('newProducer', { producerId: producer.id, kind: producer.kind })
producer.observer.on('close', () => {
producer.on('transportclose', () => {
socket.broadcast.emit('producerClosed', producer.id)
consola.log('[WebRtc]', 'Producer closed', producer.id)
})
}
@@ -223,9 +225,9 @@ export default function (io: SocketServer, router: types.Router) {
socket.on('disconnect', () => {
consola.info('Client disconnected:', socket.id)
transports.get(socket.id)?.forEach(t => t.close())
producers.get(socket.id)?.forEach(p => p.close())
consumers.get(socket.id)?.forEach(c => c.close())
transports.get(socket.id)!.forEach(t => t.close())
producers.get(socket.id)!.forEach(p => p.close())
consumers.get(socket.id)!.forEach(c => c.close())
transports.delete(socket.id)
producers.delete(socket.id)