Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Http 用于后台处理的WebSocket_Http_Node.js_Backgroundworker_Websocket - Fatal编程技术网

Http 用于后台处理的WebSocket

Http 用于后台处理的WebSocket,http,node.js,backgroundworker,websocket,Http,Node.js,Backgroundworker,Websocket,使用WebSocket(comet、服务器推送等)解决长时间运行HTTP请求的问题是一个好主意吗?假设您有一个应用程序,构建在全堆栈web应用程序框架上,如Django或Rails。您想以性能的名义进行一些后台处理。从程序员的角度来看,这很容易做到,但问题出现在UI中 用户要求立即响应。所以我的想法是使用Socket.IO+node.js+AMQP消息传递,在后台任务完成后将通知推回到浏览器。我喜欢这个想法,但它仍然感觉像很多工程,只是因为我们不想在我们的主应用程序中长时间运行请求。竞争的想法可

使用WebSocket(comet、服务器推送等)解决长时间运行HTTP请求的问题是一个好主意吗?假设您有一个应用程序,构建在全堆栈web应用程序框架上,如Django或Rails。您想以性能的名义进行一些后台处理。从程序员的角度来看,这很容易做到,但问题出现在UI中

用户要求立即响应。所以我的想法是使用Socket.IO+node.js+AMQP消息传递,在后台任务完成后将通知推回到浏览器。我喜欢这个想法,但它仍然感觉像很多工程,只是因为我们不想在我们的主应用程序中长时间运行请求。竞争的想法可能是使用另一个更健壮的web服务器,它可以处理许多长时间运行的HTTP请求


您认为哪一个更好?

WebSocket本身在这里提供的功能很少,例如XHR或jsonp长轮询。从用户的角度来看,通过任何一种传输方式发送消息的感觉都是一样的。从服务器的角度来看,开放式WebSocket连接或开放式长轮询没有太大区别


不管底层技术如何,您真正正在做的和应该做的是将应用程序构建为异步事件驱动的。

WebSocket本身在这里提供的功能很少,例如XHR或jsonp长轮询。从用户的角度来看,通过任何一种传输方式发送消息的感觉都是一样的。从服务器的角度来看,开放式WebSocket连接或开放式长轮询没有太大区别

不管底层技术如何,您真正正在做的和应该做的是将应用程序构建为异步事件驱动的

使用Websockets来 克服长时间运行HTTP请求的问题

是的。与其他技术(如连续或长轮询)相比,您可以保存大量数据。试看,即步骤3部分

我喜欢这个想法,但它仍然感觉像是很多工程,只是 因为我们不想在主应用程序中长时间运行请求。 竞争的想法可能是使用另一个更健壮的web服务器,即 可以处理许多长时间运行的HTTP请求

io为您抽象传输层和回退解决方案(在缺少WebSocket的情况下)。如果您只想将socket.io/node.js/AMPQ堆栈用于消息和通知,那么它不应该是一个复杂或耗时的开发过程,但是它可能取决于周围的各种内容

通过将消息/通知委托给node.js,您可以在很大程度上解除主应用程序的负担,这要归功于它的非阻塞架构,尽管您将引入对另一种技术的依赖

另一方面,选择性能更高的web服务器可能会在一段时间内解决您的性能问题,但最终可能会扩展系统(向上扩展或向外扩展)

使用Websockets来 克服长时间运行HTTP请求的问题

是的。与其他技术(如连续或长轮询)相比,您可以保存大量数据。试看,即步骤3部分

我喜欢这个想法,但它仍然感觉像是很多工程,只是 因为我们不想在主应用程序中长时间运行请求。 竞争的想法可能是使用另一个更健壮的web服务器,即 可以处理许多长时间运行的HTTP请求

io为您抽象传输层和回退解决方案(在缺少WebSocket的情况下)。如果您只想将socket.io/node.js/AMPQ堆栈用于消息和通知,那么它不应该是一个复杂或耗时的开发过程,但是它可能取决于周围的各种内容

通过将消息/通知委托给node.js,您可以在很大程度上解除主应用程序的负担,这要归功于它的非阻塞架构,尽管您将引入对另一种技术的依赖


P>另一方面,选择性能更高的Web服务器可能会在一段时间内解决你的性能问题,但最终你可能会升级系统(UP或OUT)。N/JP>在NoDEJS上是的,但是考虑PHP+Apache。每个长轮询都会在服务器端设置一个进程。在NoDEJS是的,但是考虑PHP+Apache。每次长轮询将在服务器端获得一个进程。