Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP

Fetching latest commit…

Cannot retrieve the latest commit at this time

..
Failed to load latest commit information.
build
pages
README.ejs
config.json
layout.ejs

README.ejs

h1. mdns -- node.js Service Discovery

|_. Package:       | <%- package.name %> |
|_. Description:   | <%- package.description %> |
|_. Version:       | <%- package.version %> |
|_. Installation:  | @npm install <%- package.name %>@ (see below) |
|_. Documentation: | "mdns user guide":<%- package.homepage + '/user_guide.html'%> |
|_. License:       | "<%- package.licenses[0].type %>":http://github.com/agnat/node_mdns/blob/master/LICENSE |
|_. Donations:     | !http://api.flattr.com/button/flattr-badge-large.png(Flattr this git repository)!:https://flattr.com/submit/auto?user_id=agnat&url=https://github.com/agnat/node_mdns&title=node_mdns&tags=github&category=software |

mdns adds multicast DNS service discovery, also known as zeroconf or bonjour to "node.js":/joyent/node. It provides an object based interface to announce and browse services on the local network.

h2. Synopsis

bc.. // import the module
var mdns = require('mdns');

// advertise a http server on port 4321
var ad = mdns.createAdvertisement(mdns.tcp('http'), 4321);
ad.start();

// watch all http servers
var browser = mdns.createBrowser(mdns.tcp('http'));
browser.on('serviceUp', function(service) {
  console.log("service up: ", service);
});
browser.on('serviceDown', function(service) {
  console.log("service down: ", service);
});
browser.start();

// discover all available service types
var all_the_types = mdns.browseThemAll(); // all_the_types is just another browser...

h2. Installation

On Linux and other systems using the avahi daemon the avahi dns_sd compat library and its header files are required.  On debianesque systems the package name is @libavahi-compat-libdnssd-dev@.  On other platforms Apples "mDNSResponder":http://opensource.apple.com/tarballs/mDNSResponder/ is recommended. Care should be taken not to install more than one mDNS stack on a system. 

On Windows you are going to need Apples "Bonjour SDK for Windows". You can download it either from Apple (registration required) or various unofficial sources. Take your pick. After installing the SDK restart your shell or command prompt and make sure the @BONJOUR_SDK_HOME@ environment variable is set. You'll also need a compiler. Microsoft Visual Studio Express will do. On Windows node >=0.7.9 is required.

mdns is available as a npm package:

bc. npm install mdns

If you want to play with the latest source code, here is a more manual approach:

bc. git clone http://github.com/agnat/node_mdns
cd node_mdns
npm link && npm test

In case you want to run or even publish your package using the development version of mdns you may set the version field to a tarball URL:

bc. { "name": "discomvobulator"
, "version": "0.0.1"
, "description": "covers all your discomvobulation needs"
, "dependencies":
  { "mdns": "https://github.com/agnat/node_mdns/tarball/master"
  }
}

h2. Documentation

See the "user guide":<%- package.homepage + '/user_guide.html' %>.

h2. Contributors

... in random order:

<%-
package.contributors.map(function(c) {
  return '* ' + c.name + ('github' in c ? ' ("@' + c.github + '":http://github.com/' + c.github + ')' : '' );
})/*.sort(function(a,b) { return Math.floor(10 * Math.random()) % 2})*/.join('\n')
%>

Your name is missing on the list? Shame on me. Please open an issue.

h2. Bugs and Contributions

If you find a bug, please report it using the "issue tracker":<%- package.bugs.url %>.

<!-- vim: set linebreak filetype=textile spell spelllang=en_us : -->
Something went wrong with that request. Please try again.