/
hutmp.js
38 lines (30 loc) · 895 Bytes
/
hutmp.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// Syncs dakee.js to all subscribed listeners.
// Binds a PUB socket on 5554
// Connects a SUB socket to IP specified by CLIENT_IP env var.
var zmq = require('zeromq');
var ip = process.env.CLIENT_IP
var fs = require('fs')
sub = zmq.createSocket('sub');
pub = zmq.createSocket('pub')
sub.subscribe("dakee.js")
sub.on('message', function(data) {
data = data.slice("dakee.js \n".length)
fs.open("dakee.js", "w+", 0666, function(err, fd){
buffer = new Buffer(data);
fs.write(fd, buffer, 0, buffer.length)
})
});
sub.on('error', function(error) {
console.log(error);
});
sub.connect('tcp://'+ip+':5554');
pub.bindSync("tcp://*:5554")
process.on('SIGINT', function () {
console.log("Closing")
fs.unwatchFile("dakee.js");
sub.close()
pub.close()
});
fs.watchFile("dakee.js", function (curr, prev) {
pub.send("dakee.js \n" + fs.readFileSync('dakee.js').toString())
});