Running several ApplicationSessions non-blockingly using autbahn.asyncio.wamp(使用autbahn.asyncio.wamp无阻塞地运行多个ApplicationSession)
问题描述
我正在尝试同时运行两个autobahn.asyncio.wamp.ApplicationSession
中的。以前,我使用this post's answer中建议的Autobahn库修改来完成此操作。我现在
需要更专业的解决方案。
搜索了一段时间后,this post appeared quite promising,但使用twisted
库,而不是asyncio
。我无法为autobahn
库的asyncio
分支确定类似的解决方案,因为它似乎没有使用Reactors
。
我遇到的主要问题是ApplicationRunner.run()
正在阻塞(这就是我之前将其外包给线程的原因),所以我不能在它之后再运行一次。
我确实需要同时访问两个WebSocket频道,但使用单个ApplicationSession
似乎无法做到这一点。
到目前为止我的代码:
我对autobahn
库的了解有限,恐怕文档对我的情况没有多大改善。我是不是忽略了什么?一个函数,一个参数,它使我能够复合我的组件或同时运行它们?
也许是与provided here类似的解决方案,它实现了替代ApplicationRunner
?
相关主题
Running two ApplicationSessions in twisted
Running Autobahn ApplicationRunner in Thread
Autobahn.wamp.ApplicationSession Source
Autobahn.wamp.Applicationrunner Source
按照要求,使用multithreading
代码的@stovfl答案的回溯:
推荐答案
遵循方法you linked for twisted我设法获得了与Asyncio设置相同的行为START_LOOP=FALSE
这篇关于使用autbahn.asyncio.wamp无阻塞地运行多个ApplicationSession的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!