【问题标题】:Can I send multiple responses via Node.js to the client?我可以通过 Node.js 向客户端发送多个响应吗?
【发布时间】:2011-10-18 08:22:42
【问题描述】:
我正在使用Node.js,我想向客户端发回多个响应。所以客户端会发送一个 AJAX POST 请求并取回一些数据。但是服务器必须继续做一些处理,完成后,我希望它发回更多数据。
我知道这是 Socket.io 的一个很好的候选者,但我还没有真正看到如何在 MVC 框架的上下文中使用 socket.io 的示例。它进入控制器吗?
【问题讨论】:
标签:
model-view-controller
node.js
socket.io
【解决方案1】:
您可以使用服务器发送事件。
这是一个例子:
https://github.com/chovy/nodejs-stream(完整源代码示例)
用户界面
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");
});
});
}