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 notificationsvar listener = new Listener();//Generate unique client namevar serviceName = 'service-' + Math.random();//Create new servicevar service = new Description(serviceName);//Add some meta infoservice.attr('author', 'reddec');//Add listeners for all messageslistener.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