From e644c25719e7ad761efcc3d90eb576affc5ba499 Mon Sep 17 00:00:00 2001 From: coderaiser Date: Thu, 27 Jun 2013 13:31:44 +0000 Subject: [PATCH] feature(socket) add disconect --- ChangeLog | 2 ++ lib/server/socket.js | 39 ++++++++++++++++++++++++++++++++------- 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index e7b324c4..2a70f436 100644 --- a/ChangeLog +++ b/ChangeLog @@ -84,6 +84,8 @@ getJSONfromFileTable. * fix(help) remove pre +* feature(socket) add disconect + 2012.04.22, v0.2.0 diff --git a/lib/server/socket.js b/lib/server/socket.js index a5477c42..fd5464a8 100644 --- a/lib/server/socket.js +++ b/lib/server/socket.js @@ -49,7 +49,7 @@ ++lConnNum; socket.send('{"stdout":"client connected"}'); - Util.log('server connected'); + log(lConnNum, 'connected'); if(!OnMessageFuncs[lConnNum]) OnMessageFuncs[lConnNum] = onMessage(lConnNum, socket); @@ -57,6 +57,7 @@ lConn_func = OnMessageFuncs[lConnNum]; socket.on('message', lConn_func); + socket.on('disconnect', Util.call(disconnect, lConnNum)); }); } @@ -64,6 +65,19 @@ return lRet; }; + function disconnect(pParams){ + var lConnNum, lRet = Util.checkObj(pParams, ['params']); + + if(lRet) { + lConnNum = pParams.params; + OnMessageFuncs [lConnNum] = + ClientFuncs [lConnNum] = null; + + log(lConnNum, 'disconnected'); + } + + } + /** * function gets onMessage function * that execute needed command @@ -74,7 +88,7 @@ return function(pCommand) { var lMsg, lWinCommand, lExec_func; - Util.log(pCommand); + Util.log('#' + pConnNum + ': ' + pCommand); if( Util.isContainStrAtBegin(pCommand, 'cloudcmd') ){ pCommand = Util.removeStr(pCommand, 'cloudcmd'); @@ -118,7 +132,7 @@ } if(!ClientFuncs[pConnNum]) - ClientFuncs[pConnNum] = getExec(pSocket); + ClientFuncs[pConnNum] = getExec(pSocket, pConnNum); lExec_func = ClientFuncs[pConnNum]; @@ -131,7 +145,7 @@ * function send result of command to client * @param pSocket */ - function getExec(pSocket){ + function getExec(pSocket, pConnNum){ return function(pError, pStdout, pStderr) { var lExec = { stdout : pStdout, @@ -140,11 +154,22 @@ lExec_str = JSON.stringify(lExec); - if (pError) { - Util.log('exec error: ' + pError); - } + log(pConnNum, pError, 'error'); + log(pConnNum, pStderr, 'stderror'); pSocket.send(lExec_str); }; } + + function log(pConnNum, pStr, pType){ + var lType = ' '; + + if (pStr) { + + if (pType) + lType += pType + ':'; + + Util.log('#' + pConnNum + lType + pStr); + } + } })();