我正在尝试使用 websocket 创建到浏览器的数据流。数据是日志文件的输出。 (尾 -f 文件名) 使用 Node js,我设法登录到标准输出,但我无法创建服务器并创建客户端 (js/html) 代码来创建 websocket 并接收该子进程的所有输出。 谁能帮帮我?
NODE.JS 服务器将尾部输出到标准输出(如 http://snippets.dzone.com/posts/show/12067 中所示)
var sys = require('sys')
var spawn = require('child_process').spawn;
var filename = process.ARGV[2];
if (!filename)
return sys.puts("Usage: node <server.js> <filename>");
var tail = spawn("tail", ["-f", filename]);
sys.puts("start tailing");
tail.stdout.on("data", function (data) {
sys.puts(data);
});
我的目标是尽可能实现最简单的流。为此,任何其他简单的解决方案都很受欢迎。谢谢。
最佳答案
这么简单?
var sys = require('sys')
var spawn = require('child_process').spawn;
var filename = process.ARGV[2];
if (!filename)
return sys.puts("Usage: node <server.js> <filename>");
var tail = spawn("tail", ["-f", filename]);
http = require('http');
http.createServer(function (req, res) {
sys.puts("new connection..");
res.writeHead(200, {'Content-Type': "text/plain;charset=UTF-8"});
tail.stdout.on("data", function (data) {
res.write(data);
});
}).listen(3000);
连接到服务器,你会得到你的尾部。如果尾部闲置,您必须注意客户端的超时,具体取决于您的浏览器。
如果您想在浏览器中通过 javascript 访问这些数据,请考虑使用 socket.io因为这将使用浏览器可用于访问流的最佳方法(websocket、长轮询、flash 等)。如果您需要客户端 javascript 示例,我也可以发布。
关于node.js - 最小 Websocket Nodejs 尾部示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3499152/