Bonjour:按名称搜索服务
问题描述:
我有一个应用程序需要搜索并解析名称已知的Bonjour广告服务。大多数卓悦的例子,我发现有关服务发现的结构或多或少这样的:Bonjour:按名称搜索服务
- 呼叫
browse
检测给定类型的所有服务(例如,这可能是_http._tcp
) - 对于找到的每个服务,
serviceFound
被调用。服务名称均为此报告 - 上的每个服务呼叫
resolve
发现 - 对于每个服务解决,
serviceResolved
叫
是否有可能使用Bonjour跳过“发现”阶段,由于我事先知道我想要解决的服务名称?我可以只使用已知名称检测并解决服务吗?
答
是的,如果您已经知道服务的名称,则可以从第3步开始。这是因为此步骤是通过DNS查找来执行的,该查找具有发送到众所周知的多播地址的服务名称的SRV记录。因此,由于底层DNS协议是无状态的(每个响应都绑定到一个唯一的请求 - 几个请求之间没有状态保持),因此不需要先前的信息来进行此调用,并且mDNS响应方必须是无状态的。