我正在继承WampCraServerProtocol
(来自 Autobahn Python)并覆盖getAuthSecret
. 我知道现在我可以从该方法返回一个 deferred,但是,在做一个简单的测试时:
def getAuthSecret(self, authKey):
deferred = Deferred()
deferred.callback("secret")
return deferred
...我收到以下错误WampCraClientProtocol
:
Authentication Error! http://api.wamp.ws/error#generic Deferred instance has no attribute '__len__' None
好的,仅此一项就已经令人困惑了。getAuthSecret
延期返还是否有特殊要求?
好的,继续前进,基于该错误,我向要返回的延迟添加了一个(微不足道的) len方法:
def getAuthSecret(self, authKey):
#secret_deferred = self.factory.get_secret(authKey)
deferred = Deferred()
deferred.__len__ = lambda: 1
deferred.callback("secret")
return deferred
...在这种情况下,我得到:
Authentication Error! http://api.wamp.ws/error#generic unsupported operand type(s) for +: 'instance' and 'str' None
这让我更加困惑。我只想知道从该方法返回延迟的正确方法。(我应该注意,如果返回一个简单的字符串,一切都会完美运行)。谢谢。