Node.js中简单的Hello World问题

我是新来的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只写了一次。 我在这做错了什么?

编辑:我站在纠正的意见…只要删除response.end()调用,你应该看到像你期待的东西。

原始响应:你正在做的事情不能以这种方式完成……对HTTP请求的响应只能发送一次: response.end()被调用时(第一次)。 评论者指出这是不正确的:可以正确地说,在调用end()之后没有更多的数据可以在响应中发送。

如果你想显示一个HTML页面,其内容每秒都会根据服务器端动作改变,你将需要使用像WebSockets(例如Node兼容的http://socket.io/库)和一些客户端的Javascript ,这比你上面的代码复杂一些。 一般来说,对于不仅仅是附加到响应或进行双向通信的非平凡UI,这种types的方法是可取的