如何在python-zeroconf中实现子类型并使用对类型的avahi浏览过滤进行验证?

问题描述

在Ubuntu 18.04上使用avahi-browse,我想检查服务发布是否正常。

我希望使用avahi-browse -ar查看所有服务。
对于avahi-browse -r _zmq._tcp,我希望只看到类型为_zmq._tcp的服务,包括那些具有子类型的服务。

要对此进行测试,我做了avahi-publish-service --subtype=_foo._sub._zmq._tcp foo _zmq._tcp 9099,上面的命令按预期显示。

然后我使用以下代码使用python 3.7和zeroconf 0.28.4发布子类型的服务:

from zeroconf import IPVersion,Zeroconf,ServiceInfo
import socket

if __name__ == "__main__":

    zeroconf = Zeroconf(ip_version=IPVersion.All)
    service_info = ServiceInfo(f"_bar._sub._zmq._tcp.local.",f"bar._zmq._tcp.local.",port=int(9090),server=f"{socket.gethostname()}.local."
                               )

    zeroconf.register_service(service_info,allow_name_change=True)
    try:
        input("Press enter to exit...\n\n")
    finally:
        zeroconf.unregister_all_services()
        zeroconf.close()

avahi-browse -ar将显示服务。
avahi-browse -r _zmq._tcp

使用子类型的人似乎并不多,文档也很短。 我在代码中做错了吗?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...