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

Cos*_*lis 4 tornado websocket socket.io sockjs

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

Joe*_*oes 8

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

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

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

1 - 提出要求

2 - 从on_message返回

... 稍微延迟 ...

3 - 将数据发送到客户端

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