我正在使用WSDiscovery模块进行python。我已经能够在我的网络上搜索服务。我试图发现一个客户端并从中获取XAddress。 WSDiscovery模块只有非常少的文档,实际上很少,唯一的部分是在模块的自述文件中,这是几行长。我已经设法让这个特定的代码在下面工作:
import WSDiscovery
from WSDiscovery import WSDiscovery
def printService():
wsd = WSDiscovery()
wsd.start()
services = wsd.searchServices()
for service in services:
try:
print service.getEPR() + ":" + str(service.getXAddrs())
print service.getTypes()
except:
print "Error with "+service.getEPR()
wsd.stop()
这是get的所有服务,我可以使用以下方式获得不同的XAddresses:
service.getXAddrs()[0]
但我正在寻找具有特定身份的人。其中一个地址会出现:
4yr8343-r48d-3ref-4fsw-5r4tw432:[u'http://10.10.10.10:5321']
任何人都可以考虑选择具有此ID号的地址的建议。
由于
答案 0 :(得分:1)
查看sources您可以看到
1。 searchServices签名的参数很少:
def searchServices(self, types=None, scopes=None, timeout=3)
我不认为按类型\范围过滤可能有用,不是吗?
2。 服务CLASS具有以下参数:
class Service:
def __init__(self, types, scopes, xAddrs, epr, instanceId):
self.__types = types
self.__scopes = scopes
self.__xAddrs = xAddrs
self.__epr = epr
self.__instanceId = instanceId
self.__messageNumber = 0
self.__metadataVersion = 1
对于我所看到的,你唯一能做的就是迭代搜索服务检索到的服务,并按可用属性之一进行过滤。