node.js - 最小 Websocket Nodejs 尾部示例

标签 node.js websocket tail

我正在尝试使用 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/

相关文章:

javascript - Nodejs/cheerio/x-ray 中的动态链接

node.js - 通过 node.js 使用 mailgun 发送邮件 - 找不到请求的 URL

javascript - Node js链接命令运行错误

python - Tornado websocket 模型

node.js - Sails.js 与 native WebSockets

linux - 尾部格式化错误

http - 通过 http 跟踪日志文件

node.js - Node : 100s of simultaneous requests slows down server substantially. 操作系统问题?

ssl - 让 wss 使用 stunnel & ratchet

python - 如何在 python 中生成另一个进程并捕获输出?