UNPKG

node-red-contrib-mog

Version:

mog

66 lines (53 loc) 1.77 kB
var mdns = require('mdns'); var fs = require('fs'); var browser = mdns.createBrowser(mdns.tcp('nmos-node')); console.log("Browser listenning..."); var obj = { services: [] }; fs.writeFile('available-devices.json', JSON.stringify(obj), 'utf8', function (err) { if (err) throw err; console.log('Database initialized'); }); browser.on('serviceUp', function(service) { console.log("service up: ", service); //depois posso configurar aqui mais ou menos informaçao acerca dos serviços var s = { interfaceIndex: service.interfaceIndex, typeName: service.type.name, protocol: service.type.protocol, subtypes: service.type.subtypes, fullyQualified: service.type.fullyQualified, replyDomain: service.replyDomain, flags: service.flags, name: service.name, networkInterface: service.networkInterface, fullname: service.fullname, host: service.host, port: service.port, addresses: service.addresses }; obj.services.push(s); var json = JSON.stringify(obj); fs.writeFile('available-devices.json', json, 'utf8', function (err) { if (err) throw err; console.log('Saved!'); }); }); browser.on('serviceDown', function(service) { console.log("service down: ", service); for(var i = 0; i < obj.services.length; i++) { if(obj.services[i].interfaceIndex == service.interfaceIndex) { obj.services.splice(i, 1); break; } } var json = JSON.stringify(obj); fs.writeFile('available-devices.json', json, 'utf8', function (err) { if (err) throw err; console.log('Saved!'); }); }); browser.on('error', function(error) { //console.log("Ups!"); }); browser.start();