websocket - sockjs-tornado 方法中的异步调用

标签 websocket socket.io tornado sockjs

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

最佳答案

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

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

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

1 - 提出要求

2 - 从 on_message 返回

... 稍微延迟 ...

3 - 向客户端发送数据

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

关于websocket - sockjs-tornado 方法中的异步调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12378242/

相关文章:

javascript - asp.net 上的慢速 C# websockets

websocket - 首先进行即时投票?

node.js - socket.io 不存储 session

python - 如何在数据库中使 Tornado 请求原子化

javascript - 如何限制客户端通过 websocket 发送的数据量?

websocket - 在 Go 中提供 websocket

node.js - Socket.io房间broadcast.to和sockets.in的区别

javascript - sails.js 如何构建实时 Web 控制台应用程序

javascript - Tornado 和 JavaScript 库的问题

python - SAAS 的 Tornado Web 应用程序中的子域