Files
Autonomous-Bug-Explorer/dist/realtime/SocketGateway.js

43 lines
1.3 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.SocketGateway = void 0;
const BROADCAST_EVENTS = [
'crawling.started',
'crawling.state_discovered',
'crawling.action_executed',
'crawling.completed',
'crawling.failed',
'findings.created',
'findings.resolved',
'findings.enriched',
'fuzzing.started',
'fuzzing.vulnerability_detected',
'fuzzing.completed',
];
class SocketGateway {
constructor(io, eventBus, logger) {
this.io = io;
this.eventBus = eventBus;
this.logger = logger;
}
start() {
// Subscribe EventBus events → broadcast to all connected clients
for (const eventName of BROADCAST_EVENTS) {
this.eventBus.subscribe(eventName, {
handle: async (event) => {
this.io.emit(eventName, event);
this.logger.debug({ eventName }, 'Socket event broadcast');
},
});
}
this.io.on('connection', (socket) => {
this.logger.debug({ socketId: socket.id }, 'Client connected');
socket.on('disconnect', () => {
this.logger.debug({ socketId: socket.id }, 'Client disconnected');
});
});
this.logger.info('SocketGateway started');
}
}
exports.SocketGateway = SocketGateway;