Skip to content

Instantly share code, notes, and snippets.

@superbrothers
Created March 3, 2012 15:31
Show Gist options
  • Save superbrothers/1966635 to your computer and use it in GitHub Desktop.
Save superbrothers/1966635 to your computer and use it in GitHub Desktop.
<div id="container"></div>
<script src="/socket.io/socket.io.js"></script>
<script>
// <![[CDATA
var socket = io.connect('http://localhost')
, container = document.getElementById("container");
socket.on("message", function (data) {
container.innerHTML = "<p>" + data + "</p>" + container.innerHTML;
});
// ]]>
</script>
#! /usr/bin/env node
/**
* ./server.js tmp.log
*/
"use strict";
var fs = require("fs")
, child_process = require("child_process")
, http = require("http")
, server = http.createServer(handler)
, io = require("socket.io").listen(server)
, pid = child_process.fork(__dirname + "/watch.js", process.argv.slice(2));
io.sockets.on("connection", function (socket) {
console.log("connected");
pid.on("message", function (m) {
socket.emit("message", m.added)
});
});
server.listen(3000);
function handler(req, res) {
fs.readFile(__dirname + "/index.html", function (err, data) {
if (err) {
res.writeHeader(500);
return res.end();
}
res.writeHeader(200);
res.end(data);
});
}
#! /usr/bin/env node
"use strict";
var fs = require("fs")
, filename = process.argv[2];
fs.open(filename, "r", "0666", function (err, fd) {
if (err) {
console.log(err);
process.exit(1);
}
fs.watchFile(filename, function (curr, prev) {
if (curr.size <= prev.size) return;
var buf_size = 1024
, buf = new Buffer(1024);
fs.read(fd, buf, 0, buf_size, prev.size, function (err, bytesRead, buffer) {
var added = buffer.toString("utf-8", 0, bytesRead).trim();
console.log("" + added + "");
process.send({added: added});
});
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment