使用websockets(comet,服务器推送,…)来解决长时间运行的http请求的问题,这是一个好主意吗?假设您有一个应用程序,构建在完整的web应用程序框架(如django或rails)上。你想以性能的名义做一些后台处理。从程序员的角度来说,这很容易做到,但问题出现在ui中。
用户要求立即响应。所以我的想法是使用socket.io+node.js+amqp消息传递,在后台任务完成后将通知推回到浏览器。我喜欢这个想法,但感觉还是有很多工程设计,只是因为我们不想在主应用程序中长时间运行请求。竞争的想法可能是使用另一个更健壮的web服务器,它可以处理许多长时间运行的http请求。
你觉得哪个更好?

最佳答案

使用websockets来
克服了长时间运行http请求的问题?
是的。与其他技术(如连续或长轮询)相比,您可以保存相当数量的数据。试着看看this article,即步骤3部分。
我喜欢这个主意,但感觉还是有很多工程,只是
因为我们不想在主应用程序中长时间运行请求。
竞争的想法可能是使用另一个更健壮的web服务器
可以处理许多长时间运行的http请求。
io为您抽象了传输层和回退解决方案(在WebSocket不存在的情况下)。如果您只想将socket.io/node.js/ampq堆栈用于消息传递和通知,那么它不应该是一个复杂或耗时的开发过程,但是它可能依赖于周围的各种东西。
通过将消息/通知委托给node.js,您可以在很大程度上解除主应用程序的负担,这要归功于它的非阻塞体系结构,尽管您将引入对其他技术的依赖。
另一方面,选择性能更高的web服务器可能会在一段时间内解决性能问题,但最终可能会导致系统的扩展(向上或向外)。

关于http - Websocket用于后台处理,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7282333/

10-16 15:01
查看更多