2010-03-14 1 views
1

Bonjour предоставляет метод DNSSD.browse (serviceType, callBackObject), который просматривает службы определенного типа. Если служба данного типа найдена, Bonjour называет «callBackObject.serviceFound». Если услуга потеряна, Bonjour называет «callBackObject.serviceLost».Может ли Bonjour просматривать сервис с определенным именем?

Я всегда рассматривал «DNSSD.browse» как метод контроля конкретной службы. Bonjour контролирует конкретную услугу и называет необходимый метод, если служба найдена (доступна) или потеряна (недоступна).

Но я понял, что «DNSSD.browse» получает (как аргумент) тип сервиса (например, «http .tcp»), и может быть несколько служб этого типа. Таким образом, вероятно, он вызывает «serviceFound» и «serviceLost», если какая-либо служба указанного типа найдена или потеряна, соответственно.

Но в моем приложении я хотел бы просмотреть только одну услугу. Каков наилучший способ сделать это? У меня есть два возможных решения:

  1. Когда я регистрирую услугу, я даю ей уникальный тип. Например: «server1. http .tcp».

  2. Я регистрирую службы с уникальными именами (а не типами) и прошу Bonjour просматривать службы с определенными именами. Но я не уверен, что Bonjour предоставляет такую ​​возможность. Может ли он просматривать службы с определенными именами?

ответ

1

Ваш первый вариант поражает меня как лучшего. Имена служб могут содержать имя экземпляра службы , чтобы ваша служба могла иметь имя , которое вы предлагаете (но с соответствующими символами подчеркивания), «server1._http._tcp». С этим именем службы служба должна отображаться при просмотре для «_http._tcp» и для «server1._http._tcp» , если вы хотите получить более конкретный запрос. DNSSD.browse должен иметь полную поддержку имен служб этого типа.

Смежные вопросы