【问题标题】:Realitme via ajax, How to create an open connection to a non-blocking server like tornado etc?Realitme via ajax,如何创建与龙卷风等非阻塞服务器的开放连接?
【发布时间】:2011-02-11 15:14:17
【问题描述】:
当人们创建实时网络应用程序时,他们将 ajax 请求保持打开/长时间运行。
他们如何在 javascript 中做到这一点?
【问题讨论】:
标签:
ajax
real-time
tornado
【解决方案1】:
与普通的ajax请求确实没有区别。回调与 XMLHttpRequest 相关联。一旦请求完成,回调就会被调用。不同之处在于服务器端的请求保持打开状态,直到为客户端准备好数据或发生超时。在浏览器端,回调会在每个后续请求得到响应时被调用。回调必须处理来自服务器的数据并发起另一个请求。请求是异步处理的,所以浏览器不会被阻塞。
整个事情的一个非常好的例子是Tornado 中包含的chat 演示。