From 168206b9e0c4389ca5ac0795b1d22dccd6526d46 Mon Sep 17 00:00:00 2001 From: Jhen Date: Tue, 19 Jul 2016 02:10:16 +0800 Subject: [PATCH] Check port already used --- bin/server.js | 18 +++++++++++++++++- package.json | 2 ++ 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/bin/server.js b/bin/server.js index 596c6e7..62ad5a3 100644 --- a/bin/server.js +++ b/bin/server.js @@ -1,5 +1,7 @@ var assign = require('object-assign'); +var repeat = require('repeat-string'); var getOptions = require('./getOptions'); +var getPort = require('getport'); module.exports = function(argv) { var SocketCluster = require('socketcluster').SocketCluster; @@ -7,5 +9,19 @@ module.exports = function(argv) { workerController: __dirname + '/worker.js', allowClientPublish: false }); - return new SocketCluster(options); + var port = options.port; + return new Promise(function(resolve) { + // Check port already used + getPort(port, function(err, p) { + if (err) return console.error(err); + if (port !== p) { + console.log('[RemoveDev] Server port ' + port + ' is already used.'); + resolve({ portAlreadyUsed: true, on: function(status, cb) { cb(); } }); + } else { + console.log('[RemoveDev] Start server...'); + console.log(repeat('-', 80) + '\n'); + resolve(new SocketCluster(options)); + } + }); + }); }; diff --git a/package.json b/package.json index 81e6e02..3fd2170 100644 --- a/package.json +++ b/package.json @@ -30,8 +30,10 @@ "cors": "^2.7.1", "ejs": "^2.4.1", "express": "^4.13.3", + "getport": "^0.1.0", "minimist": "^1.2.0", "object-assign": "^4.1.0", + "repeat-string": "^1.5.4", "socketcluster": "^4.3.1" } }