From 2fa89d40071e4afffa2aeb1805eecf2f1c148cf0 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sat, 26 May 2018 23:17:19 +0200 Subject: modularize... circular dependencies... whatever --- app/relay/relay.js | 45 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app/relay/relay.js (limited to 'app/relay/relay.js') 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) -- cgit v1.2.3-70-g09d2