【发布时间】:2010-11-02 17:35:20
【问题描述】:
我对 WebSockets 有点摸不着头脑,并且很高兴让 Tornado 服务器运行并执行基本的 websocket 连接是多么容易。今天之前我从未使用过 Tornado,虽然我喜欢我所看到的,但我对它的使用有一些疑问。
主要是,我使用 WebSockets,以便我可以在两台或多台客户端计算机之间进行低开销的通信。 (为了对话,我们只说它是一个聊天客户端)显然我可以从多台机器连接到服务器,它们都可以将消息推送到服务器并且服务器可以响应,这很棒!但这并不比您的标准 AJAX 请求好多少。如果我有一个持久连接,我也希望能够将数据推送到客户端。最简单的情况是用户 1 向服务器发布消息,服务器收到消息后立即将其推送给用户 2。
那么什么是实现这一目标的好方法呢?据我在 Tornado 中看到的,除了将消息放在某个数据存储中并让所有其他连接轮询新信息之外,没有其他方法可以在连接之间进行通信。不过这让我觉得非常笨拙,因为此时您真正要做的就是将轮询过程从客户端转移到服务器。
当然,我可能在这里完全找错了树。 Tornado 根本不适合这项工作,这当然是合理的,如果是这样的话,我很乐意听到有关替代方案的建议!
【问题讨论】: