如何解决丢失的服务细节(Avahi,ZeroConf)?

问题描述 投票:0回答:2

我正在尝试用Avahi编写某种服务浏览器。发现和解决新服务的工作正常,但是当我尝试解决在ItemRemoved处理程序中丢失的服务时,我遇到了问题。 “org.freedesktop.Avahi.TimeoutError:超时达到”错误发生。我想我做错了,所以我的问题是:

如何在ItemRemoved处理程序中解析丢失服务的IP地址?

ip ip-address zeroconf avahi
2个回答
0
投票

如果删除了某项服务,您将无法解析该服务,因为该服务已不再存在。它的记录不再有效。

您需要做的是使用DNS-SD服务名称(例如My Print Service._http._tcp)作为您在内部缓存中存储和删除内容的密钥。

理想情况下,您只需在实际需要连接时解析服务,这有助于减少网络流量,并在您使用时确保IP地址最新/有效。如果您将IP与服务名称一起存储,一旦解决了,那么您就拥有了所需的内容。


0
投票

我在客户端Linux Mint 18和服务提供商Raspbian 9(延伸)之间遇到了与Avahi相同的TimeoutError问题,但我的问题是间歇性的,但似乎经常在重新启动Rasbian pc之后。

我注意到当Avahi-Discover(客户端上的sudo apt安装avahi-discover)显示服务但没有任何数据时,那就是我得到TimeoutError,所以我只需重复“service avahi-daemon restart”(开启) avahi服务提供商)直到我在客户端上获取avahi-discover中的数据。

这不是解决方案,但它是一个解决方案。我需要继续使用avahi服务的其他工作,而不是花时间解决avahi问题。我在互联网上找到的解决方案很少,但有很多未解决的例子。对我来说这已经持续了好几个星期了,我的调查也是如此。我希望这个修复可以帮助并开始更多讨论来解决这个烦人的问题。

© www.soinside.com 2019 - 2024. All rights reserved.