2016-09-30 8 views
1

У меня есть клиент autobahn, используя класс ApplicationRunner от autobahn для подключения к маршрутизатору WAMP (перекладину). В основном разделе он придает мой ApplicationSession класс «перепланировщик», как это:Как получить реактор из ApplicationRunner в autobahnPython

if __name__ == '__main__': 
    from autobahn.twisted.wamp import ApplicationRunner 

    runner = ApplicationRunner(url=u"ws://localhost:8080/ws", realm=u"RE_acct") 

    runner.run(REScheduler, start_reactor=True, auto_reconnect=True) 

Теперь мне нужен реактор, что второе место запуска приложения для других целей. Как, например, чтобы позвонить некоторым reactor.callLater(...). Как я могу получить доступ к этому реактору. Я ничего не нашел в документах.

ответ

2

Скрученный (к сожалению) использует (процесс) глобальный объект реактора. Это означает, что после выбора реактора (который ApplicationRunner делает, если вы установили start_reactor=True), просто сделайте from twisted.internet import reactor по адресу место в вашем коде, где это необходимо.

asyncio правильно инкапсулировал цикл событий (вы можете иметь несколько циклов событий в одном процессе).

txaio обеспечивает удобный метод, который будет работать на оба (он будет подвергать единый, глобальный реактор в скрученном, и он будет подвергать цикл событий, под которой запускается ApplicationRunner): txaio.config.loop = reactor

 Смежные вопросы

  • Нет связанных вопросов^_^