From 3d3a7b80d34c100846c8ae130b424b63ba3c0784 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Fri, 7 Jul 2017 19:18:48 +0200 Subject: socket io communication --- lib/bridge/index.js | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) (limited to 'lib/bridge/index.js') diff --git a/lib/bridge/index.js b/lib/bridge/index.js index 199dfb3..b6403ba 100644 --- a/lib/bridge/index.js +++ b/lib/bridge/index.js @@ -1,6 +1,6 @@ import { execFile, spawn } from 'child_process' -export default class Bridge { +class Bridge { constructor() { this.cpus = [] this.getDevices() @@ -13,6 +13,12 @@ export default class Bridge { console.error('error fetching devices:', err) }) } + connectSocketIo(io) { + this.io = io + } + broadcast(message, data) { + this.io && this.io.emit(message, data) + } run(args) { return new Promise( (resolve, reject) => { console.log('>', args.join(' ')) @@ -33,6 +39,10 @@ export default class Bridge { } } +const bridge = new Bridge + +export default bridge + var ipc = require('node-ipc') ipc.config.id = 'cortex' @@ -42,6 +52,7 @@ ipc.serve( () => { ipc.server.on('connect', (socket) => { console.log('>>> worker connected') ipc.server.emit(socket, 'message', true) + bridge.broadcast('worker', {connected: true}) }) ipc.server.on('message', (data, socket) => { ipc.log('got a message : '.debug, data); @@ -51,6 +62,10 @@ ipc.serve( () => { // data+' world!' // ) }) + ipc.server.on('processed', (data, socket) => { + console.log('processed job') + bridge.broadcast('processed', data) + }) ipc.server.on( 'socket.disconnected', (socket, destroyedSocketID) => { ipc.log('client ' + destroyedSocketID + ' has disconnected!'); }) -- cgit v1.2.3-70-g09d2