以下是我的代码:
var express = require('express'),
app = express.createServer(express.logger());
app.use(express.bodyParser());
app.get('/', function(request, response) {
var name = request.param('name', null);
response.header('Content-Type', 'text/event-stream');
var t = setInterval(function(){
response.write('Hello World by '+name+' (using http-1.1 streaming data!)<br />');
}, 2000);
/*request.socket.on('close', function() {
clearInterval(t);
}); */
});
var port = process.env.PORT || 5000;
app.listen(port, function() {
//clearInterval(t);
console.log("Listening on " + port);
});
我使用 Express 是因为我在 Heroku 上测试并按照指南操作。
所以当我打开应用程序时,会弹出一个下载对话框,里面是文件中的数据(已下载),而不是 HTML(DOM)响应。
我做错了什么?(是浏览器问题吗?)
编辑:
@Joe 解决了我的初步问题,但我还有两个问题:
1)为什么我不需要插入“正确”的内容类型?(流式传输?)
2)为什么这段代码只有等待很长时间(大约半分钟)后才输出?
text/event-stream
的作用http://dsheiko.com/weblog/html5-and-server-sent-events/ - Joe