40 lines
		
	
	
		
			922 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			922 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
'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()
 | 
						|
}
 |