diff --git a/README.md b/README.md index 8165e531..bb73e278 100644 --- a/README.md +++ b/README.md @@ -110,7 +110,7 @@ Additional modules --------------- **Cloud Commander's Server Side** not using additional modules for main functionality. But for minification and optimization tricks optional can be -assingned (and installed) module: [Minify] (https://github.com/coderaiser/minify "Minify") +assingned (and installed) modules: [Minify] (https://github.com/coderaiser/minify "Minify") and [socket.io] (https://github.com/LearnBoost/socket.io "Socket.IO"). Install addtitional modules: diff --git a/lib/client/socket.js b/lib/client/socket.js index 835be672..19d1dd88 100644 --- a/lib/client/socket.js +++ b/lib/client/socket.js @@ -16,17 +16,21 @@ var CloudCommander, io; cloudcmd.Socket = socket; socket.on('connect', function () { - outToTerminal('socket connected'); + outToTerminal({stdout: 'socket connected'}); + JqueryTerminal.Term.resume(); }); socket.on('message', function (msg) { - outToTerminal(msg); + var lMsg = JSON.parse(msg); + + outToTerminal(lMsg); }); socket.on('disconnect', function () { - outToTerminal('socket disconected'); + outToTerminal({stderr: 'socket disconected'}); + JqueryTerminal.Term.pause(); }); }, @@ -42,14 +46,31 @@ var CloudCommander, io; lResult = true; if(lTerm){ + var lStdout, + lStderr; if(Messages.length){ /* show oll msg from buffer */ - for(var i=0; i < Messages.length; i++) - lTerm.echo(Messages[i]); + for(var i=0; i < Messages.length; i++){ + lStdout = Messages[i].stdout; + lStderr = Messages[i].stderr; + + if(lStdout) + lTerm.echo(lStdout); + + if(lStderr) + lTerm.error(lStderr); + } Messages = []; } - lResult = lTerm.echo(pMsg); + lStdout = pMsg.stdout; + lStderr = pMsg.stderr; + + if(lStdout) + lResult = lTerm.echo(lStdout); + + if(lStderr) + lResult = lTerm.error(pMsg.lStderr); } else{ /* if term not accesable diff --git a/lib/cloudfunc.js b/lib/cloudfunc.js index 750554a0..2e713ac0 100644 --- a/lib/cloudfunc.js +++ b/lib/cloudfunc.js @@ -482,19 +482,16 @@ CloudFunc.buildFromJSON = function(pJSON, pKeyBinded) * Если мы на стороне сервера - * прописываем экспортируемые функции */ -try{ - if(exports){ - /* экспортируемые функции */ - exports.checkExtension = CloudFunc.checkExtension; - exports.buildFromJSON = CloudFunc.buildFromJSON; - exports.setTitle = CloudFunc.setTitle; - exports.getUserUIDsAndNames = CloudFunc.getUserUIDsAndNames; - - /* константы*/ - exports.Name = CloudFunc.NAME; - exports.NOJS = CloudFunc.NOJS; - exports.FS = CloudFunc.FS; - } -}catch(err){ - /* если мы на клиенте */ -} \ No newline at end of file +var exports; +if(exports){ + /* экспортируемые функции */ + exports.checkExtension = CloudFunc.checkExtension; + exports.buildFromJSON = CloudFunc.buildFromJSON; + exports.setTitle = CloudFunc.setTitle; + exports.getUserUIDsAndNames = CloudFunc.getUserUIDsAndNames; + + /* константы*/ + exports.Name = CloudFunc.NAME; + exports.NOJS = CloudFunc.NOJS; + exports.FS = CloudFunc.FS; +} \ No newline at end of file diff --git a/lib/server/socket.js b/lib/server/socket.js index 1327a17e..efa240d1 100644 --- a/lib/server/socket.js +++ b/lib/server/socket.js @@ -14,7 +14,7 @@ exports.listen = function(pServer){ io.sockets.on('connection', function (socket) { Socket = socket; - socket.send('hello from server!'); + socket.send('{stdout:"client connected"}'); console.log('server connected'); @@ -38,17 +38,19 @@ exports.listen = function(pServer){ * @param stdout * @param stderr */ -function getExec(error, stdout, stderr) { - if(stdout){ - console.log(stdout); - Socket.send(stdout); +function getExec(pError, pStdout, pStderr) { + if (pError !== null) { + console.log('exec error: ' + pError); } - if(stderr){ - console.log('stderr: ' + stderr); - Socket.send(stderr); + else{ + var lExec = { + stdout : pStdout, + stderr : pStderr + }; + + var lExec_str = JSON.stringify(lExec); + + Socket.send(lExec_str); + console.log(lExec); } - - if (error !== null) { - console.log('exec error: ' + error); - } }