commit 6765406d1fc66ab9ee37e7c95cf324209dc97b24
parent 60c22e4834777956e44e98521d23d3adc017eb4f
Author: finwo <finwo@pm.me>
Date: Wed, 14 Nov 2018 14:47:04 +0100
Is a simple websocket lib too much to ask?
Diffstat:
3 files changed, 95 insertions(+), 189 deletions(-)
diff --git a/package-lock.json b/package-lock.json
@@ -559,7 +559,8 @@
"async-limiter": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz",
- "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg=="
+ "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==",
+ "dev": true
},
"asynckit": {
"version": "0.4.0",
@@ -1335,12 +1336,6 @@
"integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==",
"dev": true
},
- "backoff": {
- "version": "2.3.0",
- "resolved": "https://registry.npmjs.org/backoff/-/backoff-2.3.0.tgz",
- "integrity": "sha1-7nx+OAk/kuRyhZ22NedlJFT8Ieo=",
- "optional": true
- },
"balanced-match": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
@@ -1425,12 +1420,6 @@
"integrity": "sha1-R0IRyV5s8qVH20YeT2d4tR0I+mU=",
"optional": true
},
- "base64id": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/base64id/-/base64id-0.1.0.tgz",
- "integrity": "sha1-As4P3u4M709ACA4ec+g08LG/zj8=",
- "optional": true
- },
"bcrypt-pbkdf": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
@@ -2086,14 +2075,6 @@
"integrity": "sha512-DqJoDarxq50dcHsOOlMLNoy+qQitlMNbYb6wwbE0oUw2veHdRkpNrhmngiUYKMErdJ8SJ48rpJsZTQgy5SoEAA==",
"dev": true
},
- "emitter": {
- "version": "http://github.com/component/emitter/archive/1.0.1.tar.gz",
- "integrity": "sha512-k3Da+QreMb9waaGCHNAHox5QqxnZEYlQmvIVYwQibrI6OpIRyIIyFGgDV5dXRLr1AJ32JLqEh0VxQEq20dFskw==",
- "optional": true,
- "requires": {
- "indexof": "0.0.1"
- }
- },
"end-of-stream": {
"version": "1.4.1",
"resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz",
@@ -2102,113 +2083,6 @@
"once": "^1.4.0"
}
},
- "engine.io": {
- "version": "0.7.12",
- "resolved": "http://registry.npmjs.org/engine.io/-/engine.io-0.7.12.tgz",
- "integrity": "sha1-2l3Int45u83xOawUKFzliaTQaLY=",
- "optional": true,
- "requires": {
- "base64id": "0.1.0",
- "debug": "0.6.0",
- "engine.io-parser": "0.3.0",
- "ws": "0.4.31"
- },
- "dependencies": {
- "commander": {
- "version": "0.6.1",
- "resolved": "http://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
- "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
- "optional": true
- },
- "debug": {
- "version": "0.6.0",
- "resolved": "http://registry.npmjs.org/debug/-/debug-0.6.0.tgz",
- "integrity": "sha1-zp1dAl1SlLPwdIpJS+uvPJ/Yc08=",
- "optional": true
- },
- "nan": {
- "version": "0.3.2",
- "resolved": "http://registry.npmjs.org/nan/-/nan-0.3.2.tgz",
- "integrity": "sha1-DfGTXKsVNpB17xYK0olBB6oU3C0=",
- "optional": true
- },
- "ws": {
- "version": "0.4.31",
- "resolved": "http://registry.npmjs.org/ws/-/ws-0.4.31.tgz",
- "integrity": "sha1-WkhJ56nM0e1aga60hHyf7fMSKSc=",
- "optional": true,
- "requires": {
- "commander": "~0.6.1",
- "nan": "~0.3.0",
- "options": ">=0.0.5",
- "tinycolor": "0.x"
- }
- }
- }
- },
- "engine.io-client": {
- "version": "0.7.12",
- "resolved": "http://registry.npmjs.org/engine.io-client/-/engine.io-client-0.7.12.tgz",
- "integrity": "sha1-GuhJUxpCr7lRUJgTxdfFKDsTc2U=",
- "optional": true,
- "requires": {
- "debug": "0.7.2",
- "emitter": "http://github.com/component/emitter/archive/1.0.1.tar.gz",
- "engine.io-parser": "0.3.0",
- "global": "https://github.com/component/global/archive/v2.0.1.tar.gz",
- "has-cors": "https://github.com/component/has-cors/archive/v1.0.2.tar.gz",
- "indexof": "0.0.1",
- "ws": "0.4.31",
- "xmlhttprequest": "https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz"
- },
- "dependencies": {
- "commander": {
- "version": "0.6.1",
- "resolved": "http://registry.npmjs.org/commander/-/commander-0.6.1.tgz",
- "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=",
- "optional": true
- },
- "debug": {
- "version": "0.7.2",
- "resolved": "http://registry.npmjs.org/debug/-/debug-0.7.2.tgz",
- "integrity": "sha1-BWaSyGZwl38RXegpF5GLjouaEPA=",
- "optional": true
- },
- "nan": {
- "version": "0.3.2",
- "resolved": "http://registry.npmjs.org/nan/-/nan-0.3.2.tgz",
- "integrity": "sha1-DfGTXKsVNpB17xYK0olBB6oU3C0=",
- "optional": true
- },
- "ws": {
- "version": "0.4.31",
- "resolved": "http://registry.npmjs.org/ws/-/ws-0.4.31.tgz",
- "integrity": "sha1-WkhJ56nM0e1aga60hHyf7fMSKSc=",
- "optional": true,
- "requires": {
- "commander": "~0.6.1",
- "nan": "~0.3.0",
- "options": ">=0.0.5",
- "tinycolor": "0.x"
- }
- }
- }
- },
- "engine.io-parser": {
- "version": "0.3.0",
- "resolved": "http://registry.npmjs.org/engine.io-parser/-/engine.io-parser-0.3.0.tgz",
- "integrity": "sha1-Z/pA27xK4BtR3arafer3XsosUGE="
- },
- "engine.io-stream": {
- "version": "0.4.3",
- "resolved": "https://registry.npmjs.org/engine.io-stream/-/engine.io-stream-0.4.3.tgz",
- "integrity": "sha1-IcgmSJajejkeTM9Y+SrbjgIE+hs=",
- "optional": true,
- "requires": {
- "engine.io": "0.7.12",
- "engine.io-client": "0.7.12"
- }
- },
"errno": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz",
@@ -2317,6 +2191,15 @@
"integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=",
"dev": true
},
+ "eventsource": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz",
+ "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==",
+ "optional": true,
+ "requires": {
+ "original": "^1.0.0"
+ }
+ },
"exec-sh": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.2.2.tgz",
@@ -2462,6 +2345,15 @@
"integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=",
"dev": true
},
+ "faye-websocket": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.1.tgz",
+ "integrity": "sha1-8O/hjE9W5PQK/H4Gxxn9XuYYjzg=",
+ "optional": true,
+ "requires": {
+ "websocket-driver": ">=0.5.1"
+ }
+ },
"fb-watchman": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz",
@@ -3223,10 +3115,6 @@
"is-glob": "^2.0.0"
}
},
- "global": {
- "version": "https://github.com/component/global/archive/v2.0.1.tar.gz",
- "integrity": "sha512-O91OcV/NbdmQJPHaRu2ekSP7bqFRLWgqSwaJvqHPZHUwmHBagQYTOra29+LnzzG3lZkXH1ANzHzfCxtAPM9HMA=="
- },
"globals": {
"version": "9.18.0",
"resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz",
@@ -3298,14 +3186,6 @@
"ansi-regex": "^2.0.0"
}
},
- "has-cors": {
- "version": "https://github.com/component/has-cors/archive/v1.0.2.tar.gz",
- "integrity": "sha512-mRFI0KYjdxHUuiVNncS42nzgFekJkW5svmMzFFFxAwwcbzbkrpzoSEL5F2s0hNt194rGw5ELKqGujwrC4m9jPw==",
- "optional": true,
- "requires": {
- "global": "https://github.com/component/global/archive/v2.0.1.tar.gz"
- }
- },
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -3415,6 +3295,12 @@
"whatwg-encoding": "^1.0.1"
}
},
+ "http-parser-js": {
+ "version": "0.5.0",
+ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.0.tgz",
+ "integrity": "sha512-cZdEF7r4gfRIq7ezX9J0T+kQmJNOub71dWbgAXVHDct80TKP4MCETtZQ31xyv38UwgzkWPYF/Xc0ge55dW9Z9w==",
+ "optional": true
+ },
"http-signature": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
@@ -3457,11 +3343,6 @@
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
"dev": true
},
- "indexof": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz",
- "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10="
- },
"inflight": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
@@ -4842,6 +4723,12 @@
"integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=",
"dev": true
},
+ "json3": {
+ "version": "3.3.2",
+ "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz",
+ "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=",
+ "optional": true
+ },
"json5": {
"version": "0.5.1",
"resolved": "http://registry.npmjs.org/json5/-/json5-0.5.1.tgz",
@@ -5749,10 +5636,14 @@
}
}
},
- "options": {
- "version": "0.0.6",
- "resolved": "https://registry.npmjs.org/options/-/options-0.0.6.tgz",
- "integrity": "sha1-7CLTEoBrtT5zF3Pnza788cZDEo8="
+ "original": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz",
+ "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==",
+ "optional": true,
+ "requires": {
+ "url-parse": "^1.4.3"
+ }
},
"os-homedir": {
"version": "1.0.2",
@@ -6177,24 +6068,11 @@
"util.promisify": "^1.0.0"
}
},
- "reconnect-core": {
- "version": "0.2.2",
- "resolved": "https://registry.npmjs.org/reconnect-core/-/reconnect-core-0.2.2.tgz",
- "integrity": "sha1-KSS2KzQRccym0PZjHy28sjlYB2M=",
- "optional": true,
- "requires": {
- "backoff": "~2.3.0"
- }
- },
- "reconnect-engine": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/reconnect-engine/-/reconnect-engine-0.1.0.tgz",
- "integrity": "sha1-Nb8qKJy4YulGOmbV/RvseNgy4Uc=",
- "optional": true,
- "requires": {
- "engine.io-stream": "~0.4.0",
- "reconnect-core": "~0.2.0"
- }
+ "reconnectingwebsocket": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/reconnectingwebsocket/-/reconnectingwebsocket-1.0.0.tgz",
+ "integrity": "sha1-C4Jbq7N7ZwRFxlqn0+2XgwAgVEQ=",
+ "optional": true
},
"regenerate": {
"version": "1.4.0",
@@ -7015,6 +6893,37 @@
"kind-of": "^3.2.0"
}
},
+ "sockjs-client": {
+ "version": "1.3.0",
+ "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.3.0.tgz",
+ "integrity": "sha512-R9jxEzhnnrdxLCNln0xg5uGHqMnkhPSTzUZH2eXcR03S/On9Yvoq2wyUZILRUhZCNVu2PmwWVoyuiPz8th8zbg==",
+ "optional": true,
+ "requires": {
+ "debug": "^3.2.5",
+ "eventsource": "^1.0.7",
+ "faye-websocket": "~0.11.1",
+ "inherits": "^2.0.3",
+ "json3": "^3.3.2",
+ "url-parse": "^1.4.3"
+ },
+ "dependencies": {
+ "debug": {
+ "version": "3.2.6",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
+ "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
+ "optional": true,
+ "requires": {
+ "ms": "^2.1.1"
+ }
+ },
+ "ms": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
+ "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
+ "optional": true
+ }
+ }
+ },
"source-map": {
"version": "0.1.31",
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.1.31.tgz",
@@ -7417,11 +7326,6 @@
"user-home": "^1.0.0"
}
},
- "tinycolor": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/tinycolor/-/tinycolor-0.0.1.tgz",
- "integrity": "sha1-MgtaUtg6u1l42Bo+iH1K77FaYWQ="
- },
"tmp-stream": {
"version": "0.3.2",
"resolved": "https://registry.npmjs.org/tmp-stream/-/tmp-stream-0.3.2.tgz",
@@ -7778,6 +7682,22 @@
"integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==",
"dev": true
},
+ "websocket-driver": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.0.tgz",
+ "integrity": "sha1-DK+dLXVdk67gSdS90NP+LMoqJOs=",
+ "optional": true,
+ "requires": {
+ "http-parser-js": ">=0.4.0",
+ "websocket-extensions": ">=0.1.1"
+ }
+ },
+ "websocket-extensions": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz",
+ "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==",
+ "optional": true
+ },
"whatwg-encoding": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz",
@@ -7866,26 +7786,12 @@
"signal-exit": "^3.0.2"
}
},
- "ws": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/ws/-/ws-6.1.0.tgz",
- "integrity": "sha512-H3dGVdGvW2H8bnYpIDc3u3LH8Wue3Qh+Zto6aXXFzvESkTVT6rAfKR6tR/+coaUvxs8yHtmNV0uioBF62ZGSTg==",
- "optional": true,
- "requires": {
- "async-limiter": "~1.0.0"
- }
- },
"xml-name-validator": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz",
"integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==",
"dev": true
},
- "xmlhttprequest": {
- "version": "https://github.com/LearnBoost/node-XMLHttpRequest/archive/0f36d0b5ebc03d85f860d42a64ae9791e1daa433.tar.gz",
- "integrity": "sha512-TVSZwoeUQ7OKhb8jnQdSxGFz+lm4MGWmhG0deeYg85VQT74x5LcSrKeXHE0ZIzEycgqQ5mF8r8e1AykA7TpNAQ==",
- "optional": true
- },
"xtend": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz",
diff --git a/package.json b/package.json
@@ -30,8 +30,8 @@
"memdown": "^3.0.0",
"mongodown": "^1.2.0",
"multilevel": "^7.2.3",
- "sqldown": "^2.1.0",
- "ws": "^6.1.0"
+ "reconnectingwebsocket": "^1.0.0",
+ "sqldown": "^2.1.0"
},
"keywords": [
"autolevel",
diff --git a/src/custom/wsrpc.js b/src/custom/wsrpc.js
@@ -1,5 +1,5 @@
const multilevel = require('multilevel'),
- WebSocket = require('ws'),
+ WebSocket = require('reconnectingwebsocket'),
urlParse = require('url-parse');
const protomap = {