diff options
Diffstat (limited to 'app')
| -rw-r--r-- | app/relay/index.js | 2 | ||||
| -rw-r--r-- | app/server/index.js | 41 |
2 files changed, 28 insertions, 15 deletions
diff --git a/app/relay/index.js b/app/relay/index.js index a5a01b9..16bb988 100644 --- a/app/relay/index.js +++ b/app/relay/index.js @@ -50,7 +50,7 @@ let relay = new zerorpc.Server({ send_frame: function (fn, frame, reply) { reply() - // console.log('got frame, ' + frame.length + ' bytes') + console.log('got frame, ' + frame.length + ' bytes') remote.emit('frame', { fn: fn, frame: frame }) } }) diff --git a/app/server/index.js b/app/server/index.js index 6be7fe4..e561f57 100644 --- a/app/server/index.js +++ b/app/server/index.js @@ -16,21 +16,21 @@ server.listen(process.env.EXPRESS_PORT, () => { }) const io = socket_io(server) -const client = io.of('/client') -const relay = io.of('/relay') +let relay, client -client.on('connect', socket => { - console.log('Client connected') - socket.on('cmd', data => { - console.log('Client sent command', data) - relay.emit('cmd', data) - }) - socket.on('disconnect', () => { - console.log("Client disconnected") - }) -}) +client = io.of('/client') +client.on('connect', bind_client) -relay.on('connect', socket => { +if (process.env.EXPRESS_CONNECTS_TO_RELAY === 'true') { + console.log('Connecting to relay on ' + process.env.RELAY_REMOTE) + relay = require('socket.io-client').connect(process.env.RELAY_REMOTE) + bind_relay(relay) +} else { + relay = io.of('/relay') + relay.on('connect', bind_relay) +} + +function bind_relay(socket) { console.log('Relay connected') socket.on('res', data => { console.log('Received response', data.cmd) @@ -38,11 +38,24 @@ relay.on('connect', socket => { }) socket.on('frame', (data) => { + console.log('got frame') client.volatile.emit('frame', data) }) socket.on('disconnect', () => { console.log("Relay disconnected") }) -}) +} + +function bind_client(socket){ + console.log('Client connected') + socket.on('cmd', data => { + console.log('Client sent command', data) + relay.emit('cmd', data) + }) + socket.on('disconnect', () => { + console.log("Client disconnected") + }) +} + |
