OSDN Git Service

update the port retry logic
authorZhiting Lin <zlin035@uottawa.ca>
Mon, 28 Oct 2019 01:54:26 +0000 (09:54 +0800)
committerZhiting Lin <zlin035@uottawa.ca>
Mon, 28 Oct 2019 01:54:26 +0000 (09:54 +0800)
main.js
package-lock.json
package.json

diff --git a/main.js b/main.js
index f8226b5..c1dc180 100644 (file)
--- 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) {
index 0fc8c3b..43fc1ae 100644 (file)
@@ -1,6 +1,6 @@
 {
   "name": "bytom-wallet",
-  "version": "1.0.9",
+  "version": "1.0.10",
   "lockfileVersion": 1,
   "requires": true,
   "dependencies": {
     "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",
       "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",
       "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",
       "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",
         "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",
index 693a3f1..c3284a5 100644 (file)
@@ -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",
     "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"
   },