Minimum-Nodejs-Websocket-Tail-Beispiel
Ich versuche einen stream erstellen, der die Daten an den browser mit websocket. Die Daten die Ausgabe einer log-Datei. (tail-f filename)
Mit node js, ich habe zu verwalten, zu loggen in stdout aus, aber ich habe nicht in der Lage, den server zu erstellen, und erstellen Sie die client (js/html) code zum erstellen eines websocket-und alle erhalten, die Ausgabe des child-Prozesses.
Kann mir jemand helfen?
NODE.JS SERVER-AUSGABE von RUTE ZU STDOUT (wie in 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);
});
Mein Ziel ist es, die einfachste stream möglich. Eine einfache Lösung ist gut erhalten. Danke.
InformationsquelleAutor jdelard | 2010-08-17
Du musst angemeldet sein, um einen Kommentar abzugeben.
Einfach?
Dem server verbinden und erhalten Sie Ihre Schwanz. Du musst schauen, für timeouts auf der client-Seite, je nach browser, wenn der Schwanz geht im Leerlauf.
Wenn Sie wollen, um den Zugriff auf diese Daten von javascript im browser, ziehen Sie die Verwendung socket.io, da dies die Verwendung der besten Methode, die der browser zur Verfügung hat, um Zugriff auf den stream (websocket, long poll, flash etc.). Wenn Sie eine client-javascript-Beispiel, das ich posten kann, dass auch.
res.write(data)
lassen Sie die Kunden mit Recht eine lästige Pflicht Verarbeitung, die Gegenstand der codierten Zeichen 🙁eine client-javascript-Beispiel, die nicht brauchen, CORS wäre schön! und es wäre in der Lage, auto-scrollen Sie in der Datei, wie
tail -f
InformationsquelleAutor bxjx
Das scheint eine alte Frage & sehr wahrscheinlich ist das problem schon gelöst,
aber im Fall, dass es nicht hier eine Zusammenfassung https://gist.github.com/867575 .
es nutzt socket.io
und anstelle von Laich "tail-f" - Prozesse(braucht mehr Speicher), fs.watchFile verwendet wird.
Das ist ein wirklich cooles Projekt. Ich sehe Sie split "\n". Wenn die
createReadStream
Zuhörer erröten auf halbem Weg durch eine Linie, wird die client-Ausgabe, die es als zwei getrennte Linien?Es ist cool, aber eigentlich der Schwanz wird inotify verwenden, selbst, wenn möglich. (Ich habe bemerkt, wenn mein system lief von inotify-handle Dank sublime text und Schwanz beschwerte sich darüber, dass Sie verwenden, stat anstelle von inotify). So laichen Schwänzen ist keine so schlechte Dinge wenn Sie auf einem UNIX-server sowieso.
Auch fs.watchFile verwendet stat, während fs.Uhr verwendet inotify. Unnötig zu sagen, fs.watchFile verwendet eine Menge mehr system calls
InformationsquelleAutor NetRoY
Hier ist ein einfaches Beispiel, habe ich meist packte aus diese gist
Erste, wechseln Sie in ein leeres Verzeichnis
Dann installieren, was benötigt wird,
Laufen Sie davon
, Nachdem es ausgeführt wird, öffnen Sie im browser
Hier sind die Dateien, die Sie benötigen:
server.js
index.html
InformationsquelleAutor Brad Parks