From 109be6a61117844d1156f07fa2c54c62d410a56d Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Sun, 20 May 2018 16:03:57 +0200 Subject: relaying my blob from python to browser --- app/relay/index.js | 35 ++++++++++++++++++++++++----------- app/server/index.js | 14 +++++++++++--- 2 files changed, 35 insertions(+), 14 deletions(-) (limited to 'app') diff --git a/app/relay/index.js b/app/relay/index.js index 2ed8e10..eaec38b 100644 --- a/app/relay/index.js +++ b/app/relay/index.js @@ -8,21 +8,27 @@ const Readable = require('stream').Readable; let remote = io.connect(process.env.SOCKETIO_REMOTE); remote.on('cmd', (data) => { - if (! data.cmd || ! data.payload) { + console.log('cmd data', data) + if (! data.cmd) { console.log('malformed param...?') return } console.log('got', data.cmd) switch (data.cmd) { case 'send_param': + if (! data.payload) return rpc.invoke(data.cmd, data.payload.key, data.payload.value, (err, res, more) => { - console.log('sent param', res) + console.log('sent param, got response', res) }) break case 'get_params': + case 'get_last_frame': rpc.invoke(data.cmd, (err, res, more) => { console.log('got params', res) - remote.emit('params', res) + remote.emit('res', { + cmd: data.cmd, + res: res, + }) }) break } @@ -46,14 +52,19 @@ let relay = new zerorpc.Server({ send_frame: function (fn, frame, reply) { reply() console.log('got frame, ' + frame.length + ' bytes') - var stream = ss.createStream(); - ss(remote).emit('frame', stream, {name: fn}) - - var s = new Readable(); - s._read = function noop() {} - s.push(frame) - s.push(null); - s.pipe(stream) + remote.emit('frame', fn, frame) + // var stream = ss.createStream() + // stream.on('data', () => { console.log('stream data...') }) + // // console.log(stream) + + // var rs = new Readable() + // rs.on('data', (d) => { console.log('rs data...', d.length) }) + // rs._read = function noop() {} + // rs.pipe(stream) + // rs.push(frame) + // rs.push(null) + // ss(remote).on('frame', () => console.log('frame??')) + // ss(remote).emit('frame', stream, {name: fn}, function(){ console.log('where am i') }) } }) relay.on("error", function(error) { @@ -61,3 +72,5 @@ relay.on("error", function(error) { }) relay.bind("tcp://0.0.0.0:" + process.env.RELAY_PORT); console.log('Relay listening on port ' + process.env.RELAY_PORT) + +module.exports = { relay: relay, remote: remote, } \ No newline at end of file diff --git a/app/server/index.js b/app/server/index.js index 55daba4..0478b81 100644 --- a/app/server/index.js +++ b/app/server/index.js @@ -23,6 +23,7 @@ const relay = io.of('/relay') 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', () => { @@ -32,13 +33,20 @@ client.on('connect', socket => { relay.on('connect', socket => { console.log('Relay connected') - socket.on('params', data => { - client.emit('params', data) + socket.on('res', data => { + console.log('received response', data.cmd) + client.emit('res', data) + }) + + socket.on('frame', (fn, data) => { + console.log('relay frame', fn, data.length) + client.emit('frame', fn, data) }) ss(relay).on('frame', (stream, data) => { - console.log(data) + console.log('received frame', data) Object.values(client.connected).map(socket => { + console.log('emitting to socket') ss(socket).emit('frame', stream, data) }) }) -- cgit v1.2.3-70-g09d2