Vulture/VNode/services/game/quizz-collector.js

53 lines
1.6 KiB
JavaScript
Raw Normal View History

const fs = require('fs');
const mqtt = require('mqtt');
// Lecture du fichier de configuration
const config = JSON.parse(fs.readFileSync('\services\\config\\config_game.json', 'utf8'));
// Extraction des informations de config
const { services: { mqttHost, quizzcollector: { MQTTconfig: { mqttQuizzCollectorListTopic, mqttQuizzCollectorCmdTopic } } } } = config;
// Configuration
const folderPath = 'quizz'; // Remplace par le chemin de ton dossier
// Connexion au broker MQTT
const client = mqtt.connect(mqttHost);
client.on('connect', () => {
console.log('Connecté au broker MQTT');
client.subscribe(mqttQuizzCollectorCmdTopic, (err) => {
if (err) {
console.error("Erreur lors de l'abonnement au topic de commande:", err);
} else {
console.log(`Abonné au topic ${mqttQuizzCollectorCmdTopic}`);
}
});
});
client.on('message', (topic, message) => {
if (topic === mqttQuizzCollectorCmdTopic) {
console.log('Commande reçue, lecture du dossier en cours...');
Collect();
}
});
function Collect() {
fs.readdir(folderPath, (err, files) => {
if (err) {
console.error('Erreur lors de la lecture du dossier:', err);
return;
}
console.log('Dossiers trouvés:', files);
const message = JSON.stringify( files );
client.publish(mqttQuizzCollectorListTopic, message, { qos: 1 }, (err) => {
if (err) {
console.error('Erreur lors de la publication MQTT:', err);
} else {
console.log('Liste des fichiers publiée sur MQTT');
}
});
});
}