我正在使用Pyro 4.34,Python 2.7和Jython 2.7。
名称服务器即可。我可以像这样开始使用名称服务器:
pyro4-ns --key abc
Pyro Server 。文档说明我可以在Pyro守护程序上设置_pyroHmacKey
属性,但locateNS
方法失败并带有NamingError cannot find Name Server
。
查看locateNS
的API,我发现它有一个名为hmac_key
的arg。如果我摆脱了_pryoHmacKey并使用了那个arg,那么Pyro Server可以正常启动。
name_server = Pyro4.locateNS(hmac_key='abc')
客户端即可。文档说明我可以在_pyroHmacKey
上设置proxy
属性:
proxy = Pyro4.Proxy("PYRONAME:test")
proxy._pyroHmacKey = 'abc'
然而,第一次调用proxy
上的方法失败了:
CommunicationError: cannot connect: hmac key config not symmetric
答案 0 :(得分:0)
在Pyro Server代码中,我从Pyro守护程序中删除了_pyroHmacKey
attribtue,因为我认为只需要在Pyro4.locateNS()
的参数中指定它。一旦我重新加入,一切正常。
看起来hmac键需要在两个位置都能发生,才能使一切工作。
name_server = Pyro4.locateNS(hmac_key='abc')
daemon = Pyro4.daemon()
daemon._pyroHmacKey = 'abc'
uri = daemon.register(Foo())
ns.register('test, uri)
daemon.requestLoop()