summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/relay/index.js2
-rw-r--r--app/server/index.js41
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")
+ })
+}
+