53 lines
1.6 KiB
JavaScript
53 lines
1.6 KiB
JavaScript
|
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');
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
}
|