2

Bonjour 提供“DNSSD.browse(serviceType,callBackObject)”方法来浏览特定类型的服务。如果找到给定类型的服务,Bonjour 将调用“callBackObject.serviceFound”。如果服务丢失,Bonjour 会调用“callBackObject.serviceLost”。

我一直认为“DNSSD.browse”是一种监控特定服务的方法。Bonjour 监视特定服务并在服务被发现(可用)或丢失(不可用)时调用必要的方法。

但是我意识到“DNSSD.browse”接收(作为参数)一种服务类型(例如“ http .tcp”)并且可以有多个这种类型的服务。因此,如果找到或丢失任何指定类型的服务,它可能分别调用“serviceFound”和“serviceLost”。

但在我的应用程序中,我只想浏览一项特定的服务。最好的方法是什么?我有两个潜在的解决方案:

  1. 当我注册一个服务时,我给它一个唯一的类型。例如:“ server1.http .tcp ”。

  2. 我注册具有唯一名称(不是类型)的服务,并要求 Bonjour 浏览具有特定名称的服务。但我不确定 Bonjour 是否提供这种可能性。它可以浏览具有特定名称的服务吗?

4

1 回答 1

1

你的第一个选择让我觉得是最好的。服务名称可以添加一个服务实例名称,因此您的服务可以具有您建议的名称(但带有适当的下划线),“server1._http._tcp”。使用该服务名称,如果您想要更具体的查询,则在浏览“_http._tcp”和“server1._http._tcp”时应该显示该服务。DNSSD.browse 应该完全支持这种类型的服务名称。

于 2010-03-15T08:24:53.377 回答