Реализация протокола Bonjour/Zeroconf на чистом JavaScript. Публикуйте службы в локальной сети или обнаруживайте существующие службы с помощью многоадресной передачи DNS.
- Установка
- Использование
- API
- Инициализация
- Публикация
- var service = bonjour.publish (options)
- bonjour.unpublishAll ( [обратный вызов])
- bonjour.destroy ()
- Браузер
- var browser = bonjour.find (options [, onup])
- var browser = bonjour.findOne (options [, callback])
- Событие: up
- Event: down
- browser.services
- browser.start ()
- browser.stop ()
- browser.update()
- Service
- Событие: вверх
- Событие: ошибка
- service.stop ([обратный вызов])
- service.start ()
- service.name
- service.type
- service.subtypes
- service.protocol
- service.host
- service.port
- service.fqdn
- service .txt
- service.published
- Лицензия
Установка
npm install bonjour
Использование
var bonjour = require ('bonjour') ()//реклама HTTP-сервер на порту 3000bonjour.publish ({name: 'My Web Server', type: 'http', port: 3000})//поиск всех http servicesbonjour.find ({type: 'http'}, function (service ) {console.log ('Найден HTTP-сервер:', service)})
API
Инициализация
var bonjour = require ('bonjour') ([options])
Параметры
являются необязательными и будут использоваться при инициализации основного сервера многоадресной передачи DNS. Подробнее см. Документацию multicast-dns.
Публикация
var service = bonjour.publish (options)
Публикует новую службу.
Возможны следующие варианты:
-
name
(строка) -
host
(строка, необязательно) — по умолчанию используется локальное имя хоста -
порт
(число) -
тип
(строка) -
подтипы
(массив строк, необязательно) -
protocol
(строка, необязательно) —udp
илиtcp
(по умолчанию) -
txt
(объект, необязательно) — объект ключ/значение для трансляции как TXTrecord
IANA поддерживает список официальных типов служб и номеров портов.
bonjour.unpublishAll ( [обратный вызов])
Отменить публикацию всех служб. Необязательный обратный вызов
будет вызываться, когда услуги будут отменены.
bonjour.destroy ()
Уничтожить экземпляр mdns. Закрывает сокет udp.
Браузер
var browser = bonjour.find (options [, onup])
Прослушивание услуг, рекламируемых в сети. Необязательный обратный вызов может быть предоставлен в качестве 2-го аргумента и будет добавлен как прослушиватель событий для события up
.
Параметры (все необязательно):
-
тип
(строка) -
подтипы
(массив строк) -
протокол
(строка) — по умолчаниюtcp
-
txt
(объект) — передается в конструктор dns-txtmodule. Установите значение{binary: true}
, если вы хотите сохранить записи TXT в двоичном формате
var browser = bonjour.findOne (options [, callback])
Прослушивать и вызывать callback
с первым экземпляром соответствие услуг параметрам
. Если callback
не задан, ожидается, что вы прослушаете событие up
. Возвращенный браузер
автоматически остановится после первой соответствующей службы.
Параметры такие же, как указано в browser.find
функция.
Событие: up
Генерируется каждый раз, когда обнаруживается новая служба который соответствует браузеру.
Event: down
Генерируется каждый раз, когда существующая служба передает прощальное сообщение.
browser.services
Массив служб, известных чтобы браузер был в сети.
browser.start ()
Начните искать соответствующие службы.
browser.stop ()
Перестаньте искать соответствующие службы.
browser.update()
Передайте запрос еще раз.
Service
Событие: вверх
Излучается, когда служба запущена.
Событие: ошибка
Выдается, если ошибка возникает при публикации службы.
service.stop ([обратный вызов])
Отменить публикацию службы. Необязательный обратный вызов
будет вызываться, когда услуга будет отменена.
service.start ()
Опубликуйте службу.
service.name
Название службы, например Apple TV
.
service.type
Тип услуги, например http
.
service.subtypes
Массив подтипов. Обратите внимание, что это свойство может быть null
.
service.protocol
Протокол, используемый службой, например tcp
.
service.host
Имя хоста или IP-адрес, на котором находится служба.
service.port
порт, который прослушивает служба, например 5000
.
service.fqdn
Полное доменное имя службы. Например. если задано имя Foo Bar
, тип http
и протокол tcp
, служба . fqdn
будет иметь вид Foo Bar._http._tcp.local
.
service .txt
Запись TXT, объявленная службой (объект типа «ключ-значение»). Обратите внимание, что это свойство может быть null
.
service.published
Логическое значение, указывающее, опубликована ли служба в данный момент.
Лицензия
MIT