来自sockjs-tornado方法的异步调用

时间:2012-09-11 21:33:48

标签: websocket socket.io tornado sockjs

我正在sockjs-tornado上构建一个服务器,并想知道如何利用龙卷风的异步HTTP客户端 - 或其他异步设施来实现龙卷风,如asyncmongo,tornado-redis等。显然这是不可能的使用tornado.web.asynchronous&随机方法上的tornado.gen.engine装饰器。因此,如果我需要在SockJSConnection的on_message()内进行异步Mongo / HTTP / Redis调用,我该怎么做?

1 个答案:

答案 0 :(得分:8)

你所要做的就是创建一个由tornado.gen装饰器装饰的方法(或函数)

创建小小的要点以说明如何做到这一点:https://gist.github.com/3708549

如果您将运行示例并检查服务器控制台,您将看到以下输出:

1 - 提出请求

2 - 从on_message

返回

......稍有延迟......

3 - 向客户发送数据

因此,它不会阻止ioloop并在后台进行HTTP调用。