46 lines
1.1 KiB
JavaScript
46 lines
1.1 KiB
JavaScript
// Test script to capture and display JSON messages
|
|
const mqtt = require('mqtt');
|
|
|
|
const client = mqtt.connect('mqtt://mqtt.meshtastic.org', {
|
|
username: 'meshdev',
|
|
password: 'large4cats',
|
|
clientId: `test-${Math.random().toString(16).substr(2, 8)}`
|
|
});
|
|
|
|
client.on('connect', () => {
|
|
console.log('Connected! Subscribing to JSON topics...');
|
|
client.subscribe('msh/US/+/2/json/#', (err) => {
|
|
if (err) {
|
|
console.error('Subscribe error:', err);
|
|
} else {
|
|
console.log('Subscribed! Waiting for JSON messages...\n');
|
|
}
|
|
});
|
|
});
|
|
|
|
let messageCount = 0;
|
|
|
|
client.on('message', (topic, message) => {
|
|
try {
|
|
const data = JSON.parse(message.toString());
|
|
messageCount++;
|
|
|
|
console.log(`\n=== Message #${messageCount} ===`);
|
|
console.log(`Topic: ${topic}`);
|
|
console.log(`Data:`, JSON.stringify(data, null, 2));
|
|
|
|
if (messageCount >= 5) {
|
|
console.log('\n\nCaptured 5 messages, exiting...');
|
|
client.end();
|
|
process.exit(0);
|
|
}
|
|
} catch (e) {
|
|
// Not JSON, skip
|
|
}
|
|
});
|
|
|
|
setTimeout(() => {
|
|
console.log('Timeout - no messages received');
|
|
process.exit(1);
|
|
}, 30000);
|