1.1.0 • Published 9 years ago
service-discovery v1.1.0
node-discovery
Simple UDP multicast node discovery
Emits events with name of catched service description
Custom event '*' catches all messages (except own or force)
Example
var Description = require('../lib/service').Description;
var Listener = require('../lib/service').Listener;
//Create listener of announced notifications
var listener = new Listener();
//Generate unique client name
var serviceName = 'service-' + Math.random();
//Create new service
var service = new Description(serviceName);
//Add some meta info
service.attr('author', 'reddec');
//Add listeners for all messages
listener.on('*', function(serviceName, ip, data) {
console.log("Service", serviceName, "found from", ip, ":", data);
});
API
Constants
MULTICAST_PORT = 22000
MULTICAST_IP = '239.155.155.150'
MULTICAST_INTERVAL = 2000
class Description
Contains description of service and announce it periodically
constructor
Description(name, port = MULTICAST_PORT, ip = MULTICAST_IP, interval = INTERVAL)
Create new instance of service description and starts announcing
name {string}
Name of serviceport {number}
Multicast portip {string}
Multicast IPinterval {number}
Sending interval in ms
attr
attr:(name, data)
Add attribute of description. Same name will be replaced
name {string}
Name of attributedata {object}
Serializeable description- return itself
close
close:()
Close sockets and remove all listeners and timers
- return itself
notify
notify:()
Send self description to multicast group
- return itself
class Listener extends EventEmitter
Simple service discovery over UDP multicast. Emits events with name of catched service description. Custom event '*' catches all messages
constructor
Listener(done, port = MULTICAST_PORT, ip = MULTICAST_IP, interval = INTERVAL)
Create new instance of service finder
done {function(Listener)}
Ready callbackport {number}
Multicast portip {string}
Multicast IP
on_message
on_message:(msg, rinfo)
Listener function for incoming UDP messages
close
close:()
Close sockets and remove all listeners and timers
- return itself