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

nodejs / express-将stdout立即流式传输到客户端

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

nodejs / express-将stdout立即流式传输到客户端

这是使用SSE(服务器发送的事件)的完整示例。这适用于Firefox,也可能适用于Chrome:

var cp = require("child_process"),         express = require("express"),         app = express();app.configure(function(){    app.use(express.static(__dirname));});app.get('/msg', function(req, res){    res.writeHead(200, { "Content-Type": "text/event-stream",   "Cache-control": "no-cache" });    var spw = cp.spawn('ping', ['-c', '100', '127.0.0.1']),    str = "";    spw.stdout.on('data', function (data) {        str += data.toString();        // just so we can see the server is doing something        console.log("data");        // Flush out line by line.        var lines = str.split("n");        for(var i in lines) { if(i == lines.length - 1) {     str = lines[i]; } else{     // Note: The double-newline is *required*     res.write('data: ' + lines[i] + "nn"); }        }    });    spw.on('close', function (pre) {        res.end(str);    });    spw.stderr.on('data', function (data) {        res.end('stderr: ' + data);    });});app.listen(4000);

和客户端HTML:

<!DOCTYPE Html><html> <body>   <ul id="eventlist"> </ul>   <script>       var eventList = document.getElementById("eventlist");    var evtSource = new EventSource("http://localhost:4000/msg");    var newElement = document.createElement("li");    newElement.innerHTML = "Messages:";    eventList.appendChild(newElement);    evtSource.onmessage = function(e) {        console.log("received event");        console.log(e);        var newElement = document.createElement("li");        newElement.innerHTML = "message: " + e.data;        eventList.appendChild(newElement);    };    evtSource.onerror = function(e) {        console.log("EventSource failed.");    };    console.log(evtSource);    </script></body></html>

运行

node index.js
并将您的浏览器指向
http://localhost:4000/client.html
。请注意,由于我正在运行OSX,因此必须使用“ -c”选项而不是“ -n”。



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

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

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