0
私はgithubのthis exampleに示すように、Autobahn-0.16.0をApplicationRunnerとともに使用しようとしています。autobahn pythonで例外を発生させるにはApplicationSession .__ init__?
join()
が呼び出された後に例外を発生させると、すべて正常に動作します。ただし、__init__
メソッドで例外が発生した場合は、AttributeError: 'ApplicationRunner' object has no attribute 'log'
となります。この仕事をする方法があるのだろうかと思います。
次のコードは、問題を再現する例です。私は__init__
でraise
を-コメント
#!/usr/bin/python3
import txaio
import asyncio
from asyncio import coroutine
from autobahn.asyncio.wamp import ApplicationSession
from autobahn.asyncio.wamp import ApplicationRunner
class SessionWithException(ApplicationSession):
def __init__(self, config):
ApplicationSession.__init__(self, config)
# raise Exception('Some error exception')
def onConnect(self):
print("Connecting...")
self.join(self.config.realm)
raise Exception('Good exception')
@coroutine
def onJoin(self, details):
print("Joining...")
self.disconnect()
def onDisconnect(self):
print("Disconnecting...")
asyncio.get_event_loop().stop()
def main():
txaio.start_logging(level='error')
runner = ApplicationRunner("wss://api.poloniex.com:443", "realm1")
runner.run(SessionWithException)
if __name__ == "__main__":
main()
、私はこのエラーを取得する:
Traceback (most recent call last):
File "/usr/lib/python3.4/site-packages/autobahn/wamp/websocket.py", line 60, in onOpen
self._session = self.factory._factory()
File "/usr/lib/python3.4/site-packages/autobahn/asyncio/wamp.py", line 125, in create
self.log.failure("App session could not be created! ")
AttributeError: 'ApplicationRunner' object has no attribute 'log'
ありがとうございました!私はそれが事実かもしれないと想像しましたが、オートバイの初心者で、私は確信がありませんでした。私はアドバイスとして、[issue](https://github.com/crossbario/autobahn-python/issues/737)に報告しました。 – user1096555
Plsについては、https://github.com/crossbario/autobahn-python/issues/737#issuecomment-248520738をご覧ください。 – oberstet