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