我在用着 Node.js 我想向客户发送多个响应。因此,客户将发送AJAX POST请求,并收回一些数据。但是服务器必须继续进行一些处理,并且完成操作后,我希望它将更多数据发送回。

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

有帮助吗?

解决方案

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

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");
    });
  });
}
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top