summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/bridge/index.js17
-rw-r--r--lib/server/index.js11
-rw-r--r--lib/worker/processFiles.js2
3 files changed, 27 insertions, 3 deletions
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!');
})
diff --git a/lib/server/index.js b/lib/server/index.js
index 5b1150c..c6176fe 100644
--- a/lib/server/index.js
+++ b/lib/server/index.js
@@ -3,18 +3,21 @@ const express = require('express')
const http = require('http')
const bodyParser = require('body-parser')
const path = require('path')
+const socketIo = require('socket.io')
+
+import bridge from '../bridge'
const multer = require('multer')
const upload = multer({ dest: 'uploads/' })
const Loader = require('../vendor/Loader')
-let app, server
+let app, server, io
const db = require('../db')
const site = module.exports = {}
-site.init = function(bridge){
+site.init = function(){
app = express()
app.use(express.static(path.join(__dirname, '../../public')))
app.use(bodyParser.json())
@@ -25,6 +28,10 @@ site.init = function(bridge){
server = http.createServer(app).listen(process.env.PORT, function () {
console.log('Cortex listening at http://localhost:%s', server.address().port)
})
+
+ io = socketIo(server)
+
+ bridge.connectSocketIo(io)
constĀ api_folders = crud(app, 'folder', db.Folder, {
afterCreate: (folder) => {
diff --git a/lib/worker/processFiles.js b/lib/worker/processFiles.js
index bde15ef..562e625 100644
--- a/lib/worker/processFiles.js
+++ b/lib/worker/processFiles.js
@@ -1,3 +1,4 @@
+const ipc = require('node-ipc')
const db = require('../db')
const dbFile = db.crud(db.File)
const path = require('path')
@@ -130,5 +131,6 @@ function processImage(file) {
}
function processDone(file) {
+ ipc.of.cortex && ipc.of.cortex.emit("processed", { file: file })
return file.save({ processed: true })
} \ No newline at end of file