Skip to content

Instantly share code, notes, and snippets.

@AndreasMadsen
Created December 3, 2012 20:50
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AndreasMadsen/4197908 to your computer and use it in GitHub Desktop.
Save AndreasMadsen/4197908 to your computer and use it in GitHub Desktop.
var net = require('net');
var mdns = require('mdns');
var serviceKey = mdns.tcp('custom-name');
var discover = mdns.createBrowser(serviceKey);
discover.on('serviceUp', function (service) {
console.log({
port: service.port,
addresses: service.addresses
});
});
discover.start();
function service(callback) {
var announce = null;
// Start service server
var server = net.createServer().listen(0, '0.0.0.0', function () {
var port = server.address().port;
// Start announceing and discovering
announce = mdns.createAdvertisement(serviceKey, port);
announce.start();
// When self announcement is done, the test can continue
discover.on('serviceUp', function offline(service) {
if (service.port == port) {
discover.removeListener('serviceUp', offline);
return callback();
}
});
});
}
console.log('done 1/3');
service(function () {
console.log('done 2/3');
service(function () {
console.log('done 3/3');
console.log('?==================?');
console.log('? something worked ?');
console.log('?==================?');
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment