Bonjour:按名称搜索服务

问题描述:

我有一个应用程序需要搜索并解析名称已知的Bonjour广告服务。大多数卓悦的例子,我发现有关服务发现的结构或多或少这样的:Bonjour:按名称搜索服务

  1. 呼叫browse检测给定类型的所有服务(例如,这可能是_http._tcp
  2. 对于找到的每个服务,serviceFound被调用。服务名称均为此报告
  3. 上的每个服务呼叫resolve发现
  4. 对于每个服务解决,serviceResolved

是否有可能使用Bonjour跳过“发现”阶段,由于我事先知道我想要解决的服务名称?我可以只使用已知名称检测并解决服务吗?

是的,如果您已经知道服务的名称,则可以从第3步开始。这是因为此步骤是通过DNS查找来执行的,该查找具有发送到众所周知的多播地址的服务名称的SRV记录。因此,由于底层DNS协议是无状态的(每个响应都绑定到一个唯一的请求 - 几个请求之间没有状态保持),因此不需要先前的信息来进行此调用,并且mDNS响应方必须是无状态的。