我可以通过Node.js向客户端发送多个响应吗?

时间:2011-10-17 22:01:41

标签: model-view-controller node.js socket.io

我正在使用Node.js,我想向客户端发回多个回复。因此客户端将发送一个AJAX POST请求并获取一些数据。但服务器必须继续进行一些处理,一旦完成,我希望它能够发回更多数据。

我知道这是Socket.io的一个很好的候选者,但我还没有看到如何在MVC框架的上下文中使用socket.io的示例。它会进入控制器吗?

1 个答案:

答案 0 :(得分:1)

您可以使用服务器已发送事件。 这是一个例子:

https://github.com/chovy/nodejs-stream(完整的源代码示例)

<强> UI

var source = new EventSource('stream');

source.addEventListener('a_server_sent_event', function(e) {
   var data = JSON.parse(e.data);
   //do something with data
});

<强>节点

if ( uri == '/stream' ) {
  //setup http server response handling and get some data from another service
  http.get(options, function(resp){
    resp.on('data', function(chunk){
      res.write("event: a_server_sent_event\n");
      res.write("data: "+chunk.toString()+"\n\n");
    });
  });
}