我正在尝试使用Avahi编写某种服务浏览器。发现和解决新服务的工作正常,但是当我尝试解决在ItemRemoved处理程序中丢失的服务时,我遇到了问题。 “org.freedesktop.Avahi.TimeoutError:超时达到”错误发生。我想我做错了,所以我的问题是:
如何在ItemRemoved处理程序中解析丢失服务的IP地址?
答案 0 :(得分:0)
如果删除了某项服务,您将无法解析该服务,因为该服务已不存在。它的记录不再有效。
您需要做的是使用DNS-SD服务名称(例如My Print Service._http._tcp)作为您在内部缓存中存储和删除内容的密钥。
理想情况下,只有在实际需要连接服务时才能解析服务,这有助于减少网络流量,并确保IP地址在您使用时保持最新/有效。如果您将IP与服务名称一起存储,则一旦解决,您就可以获得所需的内容。
答案 1 :(得分:0)
我在客户端Linux Mint 18和服务提供商Raspbian 9(拉伸)之间遇到Avahi的相同TimeoutError问题,但是我的问题是断断续续的,但似乎经常是在重启Rasbian PC之后。
我注意到,当Avahi-Discover(客户端上的sudo apt install avahi-discover)显示服务但没有任何数据时,那就是我收到TimeoutError的消息,因此我只重复“ service avahi-daemon restart ”(在avahi服务提供商上),直到我在客户端上的avahi-discover中获取数据为止。
这不是解决方案,而是解决方案。我需要继续进行其他使用avahi服务的工作,而不是花时间解决avahi问题。我在互联网上发现的解决方案很少,但是有很多未解决的示例。对我来说,这已经持续了好几个星期了,与我的调查一样。我希望此修复程序能够为您解决这个烦人的问题提供帮助并展开更多讨论。