Spec-Zone.ru › Hammerspoon

hs.bonjour

Поиск и публикация сетевых служб, объявленных с помощью многоадресной рассылки DNS (Bonjour), с помощью Hammerspoon.

Этот модуль позволит вам обнаруживать службы, объявленные в вашей сети через многоадресную рассылку DNS, и публиковать службы, предлагаемые вашим компьютером.

Подмодули

  • hs.bonjour.service

Обзор API

  • Функции — вызовы API, предлагаемые непосредственно расширением
    • machineServices
    • networkServices
  • Конструкторы — вызовы API, которые возвращают объект, обычно тот, который предлагает методы API
    • new
  • Методы — вызовы API, которые могут быть выполнены только на объекте, возвращенном конструктором
    • findBrowsableDomains
    • findRegistrationDomains
    • findServices
    • includesPeerToPeer
    • stop

Документация API

Функции

machineServices
Подпись hs.bonjour.machineServices(target, callback) -> none
Тип Функция
Описание

Опрашивает хост о типах служб, которые он рекламирует через многоадресную рассылку DNS.

Параметры
  • target — строка, определяющая целевой хост для запроса типов рекламируемых служб
  • callback — функция обратного вызова, которая будет вызвана после завершения запроса типа службы. Функция обратного вызова должна ожидать один аргумент, который будет либо массивом строк, определяющих типы служб, которые рекламирует целевой хост, либо строкой, определяющей ошибку, которая произошла.
Возвращаемое значение
  • None
Примечания
  • эта функция может не работать для всех клиентов, использующих многоадресную рассылку DNS; она успешно протестирована на целевых машинах macOS и Linux, выполняющих службу Avahi Daemon, но обычно возвращала ошибку при использовании с минималистическими реализациями, встречающимися в распространенных устройствах IoT и встроенной электронике.
Источник extensions/bonjour/bonjour.lua строка 214
networkServices
Подпись hs.bonjour.networkServices(callback, [timeout]) -> none
Тип Функция
Описание

Возвращает список типов служб, рекламируемых в вашей локальной сети.

Параметры
  • callback — функция обратного вызова, которая будет вызвана по завершении запроса служб. Функция обратного вызова должна ожидать один аргумент: массив строк, определяющих типы служб, обнаруженные в локальной сети.
  • timeout — необязательное число, по умолчанию 5, определяющее максимальное количество секунд после последнего полученного типа службы, которое Hammerspoon должен ждать, пытаясь идентифицировать рекламируемые типы служб, прежде чем завершить свой запрос и вызвать функцию обратного вызова.
Возвращаемое значение
  • None
Примечания
  • Эта функция — удобная обертка над hs.bonjour:findServices, которая собирает результаты нескольких обратных вызовов, сделанных для findServices, и возвращает их все сразу функции обратного вызова, предоставленной в качестве аргумента этой функции.

  • Поскольку эта функция собирает результаты нескольких обратных вызовов перед вызовом собственного обратного вызова, значение timeout, указанное в параметре, определяет максимальное время ожидания в секундах после последнего значения, полученного findServices, до тех пор, пока macOS не укажет, что, по его мнению, больше типов служб идентифицировать не нужно.

    • Это предположение macOS, которое может не всегда быть точным, если ваша локальная сеть работает медленно, или если в вашей сети есть машины, которые медленно реагируют.
    • См. hs.bonjour:findServices для получения более подробной информации, если вам нужно создать собственный запрос, который может сохраняться в течение более длительных периодов времени или требует логики завершения, игнорирующей предположение macOS.
Источник extensions/bonjour/bonjour.lua строка 168

Конструкторы

new
Подпись hs.bonjour.new() -> browserObject
Тип Конструктор
Описание

Создает новый браузер сетевых служб, который находит опубликованные службы в сети с помощью многоадресной рассылки DNS.

Параметры
  • None
Возвращаемое значение
  • новый объект браузера или nil, если произошла ошибка
Источник extensions/bonjour/libbonjoir.m строка 138

Методы

findBrowsableDomains
Подпись hs.bonjour:findBrowsableDomains(callback) -> browserObject
Тип Метод
Описание

Возвращает список доменов zero-conf и bonjour, видимых компьютеру пользователя.

Параметры
  • callback — функция, которая будет вызвана по мере обнаружения видимых доменов. Функция должна принимать следующие параметры и возвращать ничего:
    • browserObject — объект userdata для объекта браузера, который инициировал поиск
    • type — строка, которая будет 'domain' или 'error' * если type == 'domain', остальные аргументы будут: * added — логическое значение, указывающее, представляет ли этот вызов обратного вызова недавно обнаруженный или добавленный домен (true) или что домен удален из сети (false) * domain — строка, определяющая имя обнаруженного или удаленного домена * moreExpected — логическое значение, указывающее, ожидает ли браузер обнаружения дополнительных доменов или нет. * если type == 'error', остальные аргументы будут: * errorString — строка, определяющая ошибку, которая произошла
Возвращаемое значение
  • объект браузера
Примечания
  • Этот метод возвращает домены, видимые вашей машине; однако, ваша машина может или не может получить доступ к записям или опубликовать их внутри возвращенных доменов. См. hs.bonjour:findRegistrationDomains

  • Для большинства пользователей некорпоративных сетей, вероятно, вызов обратного вызова будет выполнен только один раз для домена local. Это нормально. Корпоративные сети или сети, включающие машины Linux, использующие дополнительные домены, определенные с помощью Avahi, могут показывать дополнительные домены, хотя большинство установок Avahi теперь по умолчанию используют только 'local', если не настроено иначе.

  • Когда moreExpected становится false, это предположение macOS о том, есть ли доступные дополнительные записи.

    • В целом macOS довольно точно в этом отношении при поиске доменов, поэтому, чтобы уменьшить нагрузку на системные ресурсы, рекомендуется использовать hs.bonjour:stop, когда этот параметр равен false
Источник extensions/bonjour/libbonjoir.m строка 186
findRegistrationDomains
Подпись hs.bonjour:findRegistrationDomains(callback) -> browserObject
Тип Метод
Описание

Возвращает список доменов zero-conf и bonjour, в которых этот компьютер может регистрировать службы.

Параметры
  • callback — функция, которая будет вызвана по мере обнаружения доменов. Функция должна принимать следующие параметры и возвращать ничего:
    • browserObject — объект userdata для объекта браузера, который инициировал поиск
    • type — строка, которая будет 'domain' или 'error' * если type == 'domain', остальные аргументы будут: * added — логическое значение, указывающее, представляет ли этот вызов обратного вызова недавно обнаруженный или добавленный домен (true) или что домен удален из сети (false) * domain — строка, определяющая имя обнаруженного или удаленного домена * moreExpected — логическое значение, указывающее, ожидает ли браузер обнаружения дополнительных доменов или нет. * если type == 'error', остальные аргументы будут: * errorString — строка, определяющая ошибку, которая произошла
Возвращаемое значение
  • объект браузера
Примечания
  • Этот метод является предпочтительным для доступа к доменам, так как гарантирует, что хост-машина может подключиться к службам в возвращенных доменах. Доступ к доменам за пределами этого списка может быть ограничен. См. также hs.bonjour:findBrowsableDomains

  • Для большинства пользователей некорпоративных сетей, вероятно, вызов обратного вызова будет выполнен только один раз для домена local. Это нормально. Корпоративные сети или сети, включающие машины Linux, использующие дополнительные домены, определенные с помощью Avahi, могут показывать дополнительные домены, хотя большинство установок Avahi теперь по умолчанию используют только 'local', если не настроено иначе.

  • Когда moreExpected становится false, это предположение macOS о том, есть ли доступные дополнительные записи.

    • В целом macOS довольно точно в этом отношении при поиске доменов, поэтому, чтобы уменьшить нагрузку на системные ресурсы, рекомендуется использовать hs.bonjour:stop, когда этот параметр равен false
Источник extensions/bonjour/libbonjoir.m строка 224
findServices
Signature hs.bonjour:findServices(type, [domain], [callback]) -> browserObject
Type Method
Description

Найти объявленные службы указанного типа.

Parameters
  • type - строка, определяющая тип службы для поиска в вашей сети. Эта строка должна быть указана в формате '_service._protocol.', где _protocol — это '_tcp' или '_udp'. Примеры распространённых типов служб можно найти в hs.bonjour.serviceTypes.
  • domain - необязательная строка, определяющая домен, в котором следует искать объявленные службы. Домен должен заканчиваться точкой. Если вы опустите этот параметр, будет использован стандартный регистрируемый домен, обычно "local".
  • callback - функция обратного вызова, которая будет вызвана при обнаружении объявлений служб, соответствующих указанным критериям. Функция обратного вызова должна ожидать от 2 до 5 аргументов следующим образом:
    • Если служба обнаружена или объявление о службе прекращено, аргументы будут: * объект браузера * строка "domain" * логическое значение, указывающее, рекламируется ли служба (true) или должна быть удалена, поскольку объявления о службе прекращены (false) * объект serviceObject для конкретного объявления (см. hs.bonjour.service) * логическое значение, указывающее, ожидаются ли дополнительные объявления (true) или macOS считает, что больше объявлений не будет обнаружено (false).
    • Если произошла ошибка, аргументы обратного вызова будут: * объект браузера * строка "error" * строка, описывающая конкретную ошибку, которая произошла
Returns
  • объект браузера
Notes
  • macOS укажет, когда, по его мнению, больше нет объявлений указанного типа, заданного в type, в domain, установив последнее аргумент вашей функции обратного вызова в false. Это приблизительная оценка и может быть неточной, если ваша сеть медленная или некоторые серверы в вашей сети реагируют с задержкой.

  • Кроме того, если вы оставляете браузер работающим, вы получите будущие обновления, когда службы будут удалены из-за завершения работы сервера или добавлены из-за запуска новых серверов.

  • Однако работающий браузер потребляет некоторые системные ресурсы, поэтому вам необходимо определить, является ли это проблемой для вашей конкретной задачи. Чтобы завершить работу браузера, когда вы получили всю необходимую информацию, вы можете использовать метод hs.bonjour:stop.

  • Специальный тип "_services._dns-sd._udp." можно использовать для поиска типов служб, рекламируемых в вашей сети. Объекты hs.bonjour.service , возвращаемые функции обратного вызова, фактически не могут быть разрешены, но вы можете использовать метод hs.bonjour.service:name для создания списка служб, которые в настоящее время присутствуют и рекламируются.

    • Этот специальный тип используется сокращенной функцией hs.bonjour.networkServices для этой конкретной цели.
  • Специальный домен "dns-sd.org." можно указать, чтобы найти службы, рекламируемые через широкомасштабное обнаружение служб, как описано в http://www.dns-sd.org. Это позволяет обнаружить ограниченное число глобально доступных сайтов в интернете, особенно при использовании типа службы _http._tcp..

    • Теоретически, с дополнительным программным обеспечением вы можете опубликовать службы на своём компьютере для обнаружения служб в масштабе всей сети, используя этот домен с hs.bonjour.service.new, но требования к локальному серверу DNS и последствия безопасности при этом выходят за рамки данного документа. Для получения дополнительной информации обратитесь к http://www.dns-sd.org и к администратору или провайдеру вашего локального сервера DNS.
Source extensions/bonjour/bonjour.lua строка 65
includesPeerToPeer
Signature hs.bonjour:includesPeerToPeer([value]) -> current value | browserObject
Type Method
Description

Получить или установить, следует ли также просматривать по принципу "равноправный с равным" по Bluetooth и Wi-Fi, если они доступны.

Parameters
  • value - необязательное логическое значение, по умолчанию false, определяющее, следует ли также просматривать по принципу "равноправный с равным" по Bluetooth и Wi-Fi, если они доступны.
Returns
  • Если value предоставлен, возвращается объект браузера; в противном случае возвращается текущее значение для этого свойства
Notes
  • Это свойство должно быть установлено перед запуском поиска, чтобы оно имело эффект.
Source extensions/bonjour/libbonjoir.m строка 161
stop
Signature hs.bonjour:stop() -> browserObject
Type Method
Description

Останавливает текущий запрос или разрешение для объекта браузера

Parameters
  • Нет
Returns
  • объект браузера
Notes
  • Этот метод следует вызывать, когда вы определили необходимые службы или узлы, чтобы уменьшить потребление системных ресурсов.

  • Вызов этого метода для уже неактивного браузера ничего не сделает

  • В общем случае, когда ваша функция обратного вызова для hs.bonjour:findBrowsableDomains, hs.bonjour:findRegistrationDomains или hs.bonjour:findServices получает false для параметра moreExpected, вы должны вызвать этот метод для объекта браузера, если нет особых причин этого не делать. Возможные причины, по которым вы хотите продлить срок действия объекта браузера, документированы в каждом методе.

Source extensions/bonjour/libbonjoir.m строка 292

© 2014–2017 Hammerspoon contributors
Licensed under the MIT License.
https://www.hammerspoon.org/docs/hs.bonjour.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API