栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Node.js传输数据

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用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的反向代理,它有时会希望收集所有块并将其立即发送给用户。您需要对其进行调整。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484638.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号