| 'use strict' |
| |
| var Registry = require('./lib/registry') |
| var Server = require('./lib/mdns-server') |
| var Browser = require('./lib/browser') |
| |
| module.exports = Bonjour |
| |
| function Bonjour (opts) { |
| if (!(this instanceof Bonjour)) return new Bonjour(opts) |
| this._server = new Server(opts) |
| this._registry = new Registry(this._server) |
| } |
| |
| Bonjour.prototype.publish = function (opts) { |
| return this._registry.publish(opts) |
| } |
| |
| Bonjour.prototype.unpublishAll = function (cb) { |
| this._registry.unpublishAll(cb) |
| } |
| |
| Bonjour.prototype.find = function (opts, onup) { |
| return new Browser(this._server.mdns, opts, onup) |
| } |
| |
| Bonjour.prototype.findOne = function (opts, cb) { |
| var browser = new Browser(this._server.mdns, opts) |
| browser.once('up', function (service) { |
| browser.stop() |
| if (cb) cb(service) |
| }) |
| return browser |
| } |
| |
| Bonjour.prototype.destroy = function () { |
| this._registry.destroy() |
| this._server.mdns.destroy() |
| } |