我是node.js的新手,拥有这个非常简单的代码。我只想对连接到服务器的用户每秒说一个Hi用户。 这是我的代码:
var http = require('http');
function newfunc(request, response) {
response.writeHead(200, {
"Content-Type": "text/plain",
"connection" : "keep-alive"
});
setInterval(function() {
response.write('Hi User\n');
response.end('');
}, 1000);
}
http.createServer(newfunc).listen(7070);
我只看到Hi User
消息一次,好像setInterval
只写了一次。
我在这做错了什么?
答案 0 :(得分:1)
编辑:我在评论中得到纠正......只需删除response.end()
电话,您就会看到类似于您的期望。
原始响应:您尝试做的事情无法以这种方式完成......对HTTP请求的响应只发送一次:调用response.end()
时(第一次)。 评论者指出这不是真的正确:在调用end()
后,在回复中不能再发送更多数据是正确的。
如果要根据服务器端操作显示内容每秒更改一次的HTML页面,则需要使用类似WebSockets的内容(例如,节点兼容的http://socket.io/库)和一些客户端Javascript ,这比你上面的代码要复杂一些。 一般而言,对于不仅仅附加到响应或进行双向通信的非平凡UI,这种方法是可取的