对于我们应用程序的新界面,我认为有必要放弃 websockets 并选择 comet 以获得更广泛的支持。我意识到有几种技术,我需要确保选择正确的一种。
问题: AJAX 轮询方法是在收到分块数据后立即释放还是等到请求关闭?
如果没有,有没有办法使用 iFrame 技术并消除浏览器死机?
谢谢!
对于我们应用程序的新界面,我认为有必要放弃 websockets 并选择 comet 以获得更广泛的支持。我意识到有几种技术,我需要确保选择正确的一种。
问题: AJAX 轮询方法是在收到分块数据后立即释放还是等到请求关闭?
如果没有,有没有办法使用 iFrame 技术并消除浏览器死机?
谢谢!
Comet 通过 ajax(ajax 长轮询)只在请求完成后才使数据对应用程序的前端可用。当您有需要不定期发送的离散数据包时,它很有用。如果你想对数据进行分块,那么只需在第一个块之后完成请求,然后让客户端立即请求另一个块。如果还有另一块准备好,请立即提供;如果没有,那就让客户等到有。
值得注意的是,HTTP Long-Polling 和HTTP Streaming都属于 Comet 的范畴。长轮询需要关闭连接才能发送数据。流不会也可以在不关闭现有连接的情况下通过现有连接发送数据。
我不相信有解决“死亡旋转器”问题的简单方法。几年前我写了一篇关于这个的帖子,但我仍然不知道一个万无一失的解决方案。
就个人而言,我建议您使用 WebSockets 而不是hacky Comet 解决方案。
彗星是关于过去的。让未来成为现实。
——亚历克斯·罗素,彗星的发明者