Compare commits

...

2 Commits

Author SHA1 Message Date
benoit aab23dc51f feat: réduction drastique des logs LiveKit
Filtrage des logs :
- LIVEKIT_LOG_LEVEL=info au lieu de debug
- Suppression logs DEBUG, signal requests/responses
- Garde uniquement INFO, WARN, ERROR importants

Rend les logs bien plus lisibles pour le debug applicatif.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-05-28 14:44:49 +02:00
benoit c562415a3d fix: écoute TrackPublished pour détecter tracks audio publiés après connexion
Problème : participant.trackPublications vide au moment de ParticipantConnected
Solution : écouter RoomEvent.TrackPublished et s'abonner au track audio dès sa publication

Flow : Client connecte → ParticipantConnected → Client publie track → TrackPublished → Souscription

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2026-05-28 14:42:22 +02:00
3 changed files with 1224 additions and 1144 deletions
+9 -1
View File
@@ -159,8 +159,16 @@ export class LiveKitClient extends EventEmitter {
});
// Tracks - Debug tous les événements
this.room.on(RoomEvent.TrackPublished, (publication, participant) => {
this.room.on(RoomEvent.TrackPublished, async (publication, participant) => {
console.log(`📢 Track publié par ${participant.identity}: ${publication.kind} (${publication.sid}), muted: ${publication.muted}`);
// Si c'est un track audio, s'y abonner immédiatement
if (publication.kind === 'audio' && publication.track) {
console.log(` ⚡ Track audio détecté, souscription...`);
await this._handleAudioTrack(publication.track, publication, participant);
} else if (publication.kind === 'audio' && !publication.track) {
console.log(` ⚠️ Track audio publié mais track object non disponible encore`);
}
});
this.room.on(RoomEvent.TrackSubscribed, async (track, publication, participant) => {
File diff suppressed because one or more lines are too long
+21 -5
View File
@@ -129,16 +129,27 @@ function startLiveKitServer() {
livekitProcess = spawn(livekitBinary, args, {
stdio: ['ignore', 'pipe', 'pipe'],
env: { ...process.env },
env: {
...process.env,
LIVEKIT_LOG_LEVEL: 'info' // Réduit les logs LiveKit (debug → info)
},
shell: true // Permet de trouver le binaire dans PATH
});
livekitProcess.stdout.on('data', (data) => {
const output = data.toString().trim();
if (output) {
log('debug', '[LiveKit]', output);
if (!output) return;
// Filtrer les logs trop verbeux
if (output.includes('DEBUG') ||
output.includes('received signal request') ||
output.includes('sending signal response') ||
output.includes('handling signal request')) {
return; // Ignorer ces logs
}
log('debug', '[LiveKit]', output);
// Détection démarrage réussi
if (output.includes('starting server') || output.includes('rtc server')) {
resolve();
@@ -147,9 +158,14 @@ function startLiveKitServer() {
livekitProcess.stderr.on('data', (data) => {
const output = data.toString().trim();
if (output) {
log('warn', '[LiveKit Error]', output);
if (!output) return;
// Filtrer les logs DEBUG de stderr aussi
if (output.includes('DEBUG')) {
return;
}
log('warn', '[LiveKit Error]', output);
});
livekitProcess.on('error', (error) => {