54 lines
1.6 KiB
JavaScript
54 lines
1.6 KiB
JavaScript
const config = require('./config')
|
|
const player = require('play-sound')();
|
|
const mqtt = require('mqtt')
|
|
|
|
// Créer une instance de client MQTT
|
|
const client = mqtt.connect(config.mqttBrokerUrl);
|
|
|
|
|
|
const messages_sounds_maps = {
|
|
'success': "./assets/sounds/success.mp3",
|
|
'fail': "./assets/sounds/error.mp3",
|
|
'timer': "./assets/sounds/timer.mp3",
|
|
'bell': "/home/lol/Src/fablab/brain-blast-services/src/assets/sounds/coin.wav",
|
|
'applause': "./assets/sound/clap.mp3"
|
|
}
|
|
|
|
// Gérer les événements de connexion
|
|
client.on('connect', function () {
|
|
console.log('Connecté au broker MQTT')
|
|
|
|
// S'abonner à un topic
|
|
client.subscribe('/sound/playsound', function (err) {
|
|
if (err) {
|
|
console.error('Erreur lors de la souscription au topic', err)
|
|
} else {
|
|
console.log('Souscription au topic réussie')
|
|
}
|
|
});
|
|
});
|
|
|
|
// Gérer les messages entrants
|
|
client.on('message', function (topic, message) {
|
|
let obj = JSON.parse(message)
|
|
const audioFile = messages_sounds_maps[obj]
|
|
console.log('Message reçu sur le topic', topic, ':', obj)
|
|
console.log('Je vais lire le fichier : ', audioFile)
|
|
if (audioFile) {
|
|
// Jouer le fichier audio correspondant au message reçu
|
|
player.play(audioFile, function(err){
|
|
if (err) {
|
|
console.error('Erreur lors de la lecture du fichier audio', err);
|
|
} else {
|
|
console.log('Fichier audio lu avec succès');
|
|
}
|
|
});
|
|
} else {
|
|
console.warn('Aucun fichier audio correspondant au message reçu');
|
|
}
|
|
});
|
|
|
|
// Gérer les erreurs de connexion
|
|
client.on('error', function (error) {
|
|
console.error('Erreur de connexion au broker MQTT', error);
|
|
}); |