使用Node.js传输数据

使用Node.js传输数据,第1张

使用Node.js传输数据

有可能的。只需多次使用response.write()。

var body = ["hello world", "early morning", "richard stallman", "chunky bacon"];// send headersresponse.writeHead(200, {  "Content-Type": "text/plain"});// send data in chunksfor (piece in body) {    response.write(body[piece], "ascii");}// close connectionresponse.end();

您可能必须每隔30秒左右关闭并重新打开一次连接

编辑 :这是我实际测试的代码:

var sys = require('sys'),http = require('http');http.createServer(function (req, res) {    res.writeHead(200, {'Content-Type': 'text/html'});    var currentTime = new Date();    sys.puts('Starting sending time');    setInterval(function(){        res.write( currentTime.getHours() + ':' + currentTime.getMinutes() + ':' + currentTime.getSeconds() + "n"        );        setTimeout(function() { res.end();        }, 10000);    },1000);}).listen(8090, '192.168.175.128');

我通过Telnet连接到它,它确实发出了分块的响应。但是要在AJAX浏览器中使用它,必须支持XHR.readyState =3(部分响应)。据我所知,并非所有浏览器都支持此功能。因此,最好使用长时间轮询(或针对Chrome / Firefox的Websockets)。

EDIT2 :另外,如果您使用nginx作为Node的反向代理,它有时会希望收集所有块并将其立即发送给用户。您需要对其进行调整。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5476778.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存