From bcccd0c2aff77d5fc73c8c6ed3fef2d415679604 Mon Sep 17 00:00:00 2001 From: Zhiting Lin Date: Mon, 28 Oct 2019 09:54:26 +0800 Subject: [PATCH] update the port retry logic --- main.js | 22 ++++++++++++---------- package-lock.json | 54 +++++++++++++++++++++++++++++++++++++++++++++++++++--- package.json | 4 +++- 3 files changed, 66 insertions(+), 14 deletions(-) diff --git a/main.js b/main.js index f8226b5..c1dc180 100644 --- a/main.js +++ b/main.js @@ -11,7 +11,7 @@ const log = logger.create('main') const bytomdLog = logger.create('bytomd') const Settings = require('./modules/settings') -const net = require('net') +const tcpPortUsed = require('tcp-port-used'); let win, bytomdInit, bytomdNode @@ -119,8 +119,14 @@ function setBytomNode(event) { }) bytomdNode.stderr.on('data', function(data) { - bytomdLog.info(`bytomd node: ${data}`) - if (data.includes('msg="start node')) { + bytomdNode.on('exit', function (code) { + bytomdLog.info('bytom Node exited with code ' + code) + app.quit() + }) + }) + + tcpPortUsed.waitUntilUsed(9888, 500, 20000) + .then(function() { if (event) { event.sender.send('ConfiguredNetwork', 'startNode') } @@ -128,13 +134,9 @@ function setBytomNode(event) { startnode = true win.webContents.send('ConfiguredNetwork', 'startNode') } - } - - bytomdNode.on('exit', function (code) { - bytomdLog.info('bytom Node exited with code ' + code) - app.quit() - }) - }) + }, function(err) { + bytomdLog.info('Error:', err.message); + }); } function setBytomInit(event, bytomNetwork) { diff --git a/package-lock.json b/package-lock.json index 0fc8c3b..43fc1ae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "bytom-wallet", - "version": "1.0.9", + "version": "1.0.10", "lockfileVersion": 1, "requires": true, "dependencies": { @@ -2601,8 +2601,7 @@ "deep-is": { "version": "0.1.3", "resolved": "http://registry.npm.taobao.org/deep-is/download/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" }, "define-properties": { "version": "1.1.2", @@ -5366,6 +5365,11 @@ "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", "dev": true }, + "ip-regex": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", + "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=" + }, "ipaddr.js": { "version": "1.6.0", "resolved": "http://registry.npm.taobao.org/ipaddr.js/download/ipaddr.js-1.6.0.tgz", @@ -5620,12 +5624,27 @@ "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", "dev": true }, + "is-url": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", + "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==" + }, "is-utf8": { "version": "0.2.1", "resolved": "http://registry.npm.taobao.org/is-utf8/download/is-utf8-0.2.1.tgz", "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", "dev": true }, + "is2": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.1.tgz", + "integrity": "sha512-+WaJvnaA7aJySz2q/8sLjMb2Mw14KTplHmSwcSpZ/fWJPkUmqw3YTzSWbPJ7OAwRvdYTWF2Wg+yYJ1AdP5Z8CA==", + "requires": { + "deep-is": "0.1.3", + "ip-regex": "2.1.0", + "is-url": "1.2.4" + } + }, "isarray": { "version": "0.0.1", "resolved": "http://registry.npm.taobao.org/isarray/download/isarray-0.0.1.tgz", @@ -6402,6 +6421,11 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "net": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/net/-/net-1.0.2.tgz", + "integrity": "sha1-0XV+yaf7I3HYPPR1XOPifhCCk4g=" + }, "nice-try": { "version": "1.0.4", "resolved": "http://registry.npm.taobao.org/nice-try/download/nice-try-1.0.4.tgz", @@ -10461,6 +10485,30 @@ "inherits": "2.0.3" } }, + "tcp-port-used": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.1.tgz", + "integrity": "sha512-rwi5xJeU6utXoEIiMvVBMc9eJ2/ofzB+7nLOdnZuFTmNCLqRiQh2sMG9MqCxHU/69VC/Fwp5dV9306Qd54ll1Q==", + "requires": { + "debug": "4.1.0", + "is2": "2.0.1" + }, + "dependencies": { + "debug": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.0.tgz", + "integrity": "sha512-heNPJUJIqC+xB6ayLAMHaIrmN9HKa7aQO8MGqKpvCA+uJYVcvR6l5kgdrhRuwPFHU7P5/A1w0BjByPHwpfTDKg==", + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + } + } + }, "temp-file": { "version": "3.1.2", "resolved": "http://registry.npm.taobao.org/temp-file/download/temp-file-3.1.2.tgz", diff --git a/package.json b/package.json index 693a3f1..c3284a5 100644 --- a/package.json +++ b/package.json @@ -97,8 +97,9 @@ "glob": "~7.1.2", "i18next": "^11.9.1", "i18next-browser-languagedetector": "^2.2.3", - "log4js": "^3.0.5", "lodash": "~4.17.14", + "log4js": "^3.0.5", + "net": "^1.0.2", "moment": "^2.22.1", "moment-timezone": "^0.5.17", "pluralize": "~3.0.0", @@ -121,6 +122,7 @@ "redux-thunk": "~2.1.0", "reselect": "^3.0.0", "sha.js": "^2.4.8", + "tcp-port-used": "^1.0.1", "toml": "~2.3.3", "uuid": "~2.0.2" }, -- 2.11.0