summaryrefslogtreecommitdiff
path: root/app/relay/relay.js
diff options
context:
space:
mode:
authorJules Laplace <julescarbon@gmail.com>2018-05-26 23:17:19 +0200
committerJules Laplace <julescarbon@gmail.com>2018-05-26 23:17:19 +0200
commit2fa89d40071e4afffa2aeb1805eecf2f1c148cf0 (patch)
treee125683e840cc340e2929c44b8a47da30e19348a /app/relay/relay.js
parentc8e0a3a77106cfd608e0219c7010eb7c3a485887 (diff)
modularize... circular dependencies... whatever
Diffstat (limited to 'app/relay/relay.js')
-rw-r--r--app/relay/relay.js45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/relay/relay.js b/app/relay/relay.js
new file mode 100644
index 0000000..bb63e0b
--- /dev/null
+++ b/app/relay/relay.js
@@ -0,0 +1,45 @@
+import { remote } from './remote'
+import * as rpc from './rpc'
+
+const zerorpc = require('zerorpc')
+const Readable = require('stream').Readable
+const runner = require('./runner')
+
+export const relay = new zerorpc.Server({
+ // Called when the worker starts up and is ready to receive params.
+ connected: function(msg, reply) {
+ reply()
+ console.log('got connect from ' + msg)
+ remote.emit('system_res', {
+ type: 'rpc_connected',
+ runner: runner.status(),
+ })
+ rpc.set_connected(true)
+ return true
+ },
+
+ send_frame: function(fn, meta, frame, reply) {
+ reply()
+ // console.log('got frame, ' + frame.length + ' bytes')
+ remote.emit('frame', { fn: fn, meta: meta, frame: frame })
+ },
+
+ send_status: function(key, value, reply) {
+ reply()
+ remote.emit('status', { key: key, value: value })
+ },
+
+ disconnecting: function(){
+ reply()
+ remote.emit('system_res', {
+ type: 'rpc_disconnected',
+ })
+ rpc.set_connected(false)
+ return true
+ },
+})
+relay.on('error', function(error) {
+ console.error('Relay server error:', error)
+})
+relay.bind('tcp://0.0.0.0:' + process.env.RELAY_PORT)
+console.log('Relay listening on port ' + process.env.RELAY_PORT)