我正在尝试将 RESTful 响应程序集成到 Crossbar 应用程序中,最合适的似乎是WSGI service。理想情况下,该服务应该是发布/订阅基础设施其余部分的一部分,一方面能够接收WAMP事件,另一方面能够响应 HTTP 请求。
困难在于运行允许异步 Web 套接字事件并另外提供 WSGI 兼容组件的事件循环。在我看来,Pulsar应该能够做到这一点,但我无法弄清楚如何设置它,没有可用的示例准确地展示了这个用例。
value = None
class Foo(ApplicationSession):
def onJoin(self, details):
yield self.subscribe(self.bar, 'bar')
def bar(self, data):
value = data
app = Flask(__name__)
@app.route('/')
def baz():
return value
if __name__ == '__main__':
runner = ApplicationRunner('ws://127.0.0.1:8080', 'test')
runner.run(Foo, start_reactor=False)
# now what?
上面演示了两个部分,一个 Autobahn WAMP 客户端和一个 Flask WSGI 组件。如何并行运行这两者,允许一个线程通过 HTTP 和 Web 套接字接收事件?我并不特别关心 Python 的版本或底层库(Twisted、asyncio、Pulsar、Flask),我只是想让它以某种方式运行。