javonet-ruby-sdk 2.5.18 → 2.5.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (133) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -1
  3. data/VERSION +1 -1
  4. data/javonet-ruby-sdk.gemspec +2 -3
  5. data/lib/javonet-ruby-sdk/Binaries/Clr/JavonetClrRuntime.dll +0 -0
  6. data/lib/javonet-ruby-sdk/Binaries/Jvm/JavonetJvmRuntime.jar +0 -0
  7. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetActivationService.so +0 -0
  8. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetCppRuntimeNative.so +0 -0
  9. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetGoRuntimeNative.so +0 -0
  10. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetJvmRuntimeNative.so +0 -0
  11. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetNetcoreRuntimeNative.so +0 -0
  12. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPhpRuntimeNative.so +0 -0
  13. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetPythonRuntimeNative.so +0 -0
  14. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRuby342RuntimeNative.so +0 -0
  15. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetRubyRuntimeNative.so +0 -0
  16. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpClient.so +0 -0
  17. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libJavonetTcpTlsClient.so +0 -0
  18. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/libUtils.so +0 -0
  19. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/ARM64/version.txt +1 -1
  20. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetActivationService.so +0 -0
  21. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetCppRuntimeNative.so +0 -0
  22. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetGoRuntimeNative.so +0 -0
  23. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetJvmRuntimeNative.so +0 -0
  24. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNetcoreRuntimeNative.so +0 -0
  25. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs1816RuntimeNative.so +0 -0
  26. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejs2214RuntimeNative.so +0 -0
  27. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetNodejsRuntimeNative.so +0 -0
  28. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerl534RuntimeNative.so +0 -0
  29. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPerlRuntimeNative.so +0 -0
  30. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPhpRuntimeNative.so +0 -0
  31. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPython2RuntimeNative.so +0 -0
  32. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetPythonRuntimeNative.so +0 -0
  33. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRuby278RuntimeNative.so +0 -0
  34. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRuby342RuntimeNative.so +0 -0
  35. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetRubyRuntimeNative.so +0 -0
  36. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpClient.so +0 -0
  37. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libJavonetTcpTlsClient.so +0 -0
  38. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/libUtils.so +0 -0
  39. data/lib/javonet-ruby-sdk/Binaries/Native/Linux/X64/version.txt +1 -1
  40. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetActivationService.dylib +0 -0
  41. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetCppRuntimeNative.dylib +0 -0
  42. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetGoRuntimeNative.dylib +0 -0
  43. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetJvmRuntimeNative.dylib +0 -0
  44. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNetcoreRuntimeNative.dylib +0 -0
  45. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejs2214RuntimeNative.dylib +0 -0
  46. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetNodejsRuntimeNative.dylib +0 -0
  47. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPerlRuntimeNative.dylib +0 -0
  48. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPhpRuntimeNative.dylib +0 -0
  49. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetPythonRuntimeNative.dylib +0 -0
  50. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRuby278RuntimeNative.dylib +0 -0
  51. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRuby342RuntimeNative.dylib +0 -0
  52. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetRubyRuntimeNative.dylib +0 -0
  53. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpClient.dylib +0 -0
  54. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libJavonetTcpTlsClient.dylib +0 -0
  55. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/libUtils.dylib +0 -0
  56. data/lib/javonet-ruby-sdk/Binaries/Native/MacOs/X64/version.txt +1 -1
  57. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetActivationService.dll +0 -0
  58. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetCppRuntimeNative.dll +0 -0
  59. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetGoRuntimeNative.dll +0 -0
  60. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetJvmRuntimeNative.dll +0 -0
  61. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetNetcoreRuntimeNative.dll +0 -0
  62. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPhpRuntimeNative.dll +0 -0
  63. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetPythonRuntimeNative.dll +0 -0
  64. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRuby278RuntimeNative.dll +0 -0
  65. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetRubyRuntimeNative.dll +0 -0
  66. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpClient.dll +0 -0
  67. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/JavonetTcpTlsClient.dll +0 -0
  68. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/Utils.dll +0 -0
  69. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/ARM64/version.txt +0 -0
  70. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetActivationService.dll +0 -0
  71. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetClrRuntimeNative.dll +0 -0
  72. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetCppRuntimeNative.dll +0 -0
  73. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetGoRuntimeNative.dll +0 -0
  74. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetJvmRuntimeNative.dll +0 -0
  75. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNetcoreRuntimeNative.dll +0 -0
  76. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejs2214RuntimeNative.dll +0 -0
  77. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetNodejsRuntimeNative.dll +0 -0
  78. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPerlRuntimeNative.dll +0 -0
  79. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPhpRuntimeNative.dll +0 -0
  80. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPython2RuntimeNative.dll +0 -0
  81. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetPythonRuntimeNative.dll +0 -0
  82. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRuby278RuntimeNative.dll +0 -0
  83. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetRubyRuntimeNative.dll +0 -0
  84. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpClient.dll +0 -0
  85. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/JavonetTcpTlsClient.dll +0 -0
  86. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/Utils.dll +0 -0
  87. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X64/version.txt +1 -1
  88. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetActivationService.dll +0 -0
  89. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetClrRuntimeNative.dll +0 -0
  90. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetCppRuntimeNative.dll +0 -0
  91. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetGoRuntimeNative.dll +0 -0
  92. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetJvmRuntimeNative.dll +0 -0
  93. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetNetcoreRuntimeNative.dll +0 -0
  94. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPhpRuntimeNative.dll +0 -0
  95. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPython2RuntimeNative.dll +0 -0
  96. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetPythonRuntimeNative.dll +0 -0
  97. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpClient.dll +0 -0
  98. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/JavonetTcpTlsClient.dll +0 -0
  99. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/Utils.dll +0 -0
  100. data/lib/javonet-ruby-sdk/Binaries/Native/Windows/X86/version.txt +1 -1
  101. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Core.dll +0 -0
  102. data/lib/javonet-ruby-sdk/Binaries/Netcore/Javonet.Netcore.Utils.dll +0 -0
  103. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocket.cjs +1 -1
  104. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/transmitter/TransmitterWebsocketBrowser.cjs +1 -2
  105. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClient.cjs +62 -74
  106. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/core/webSocketClient/WebSocketClientBrowser.cjs +51 -56
  107. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/sdk/RuntimeContext.cjs +8 -4
  108. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClient.d.ts +5 -10
  109. data/lib/javonet-ruby-sdk/Binaries/Nodejs/dist/types/core/webSocketClient/WebSocketClientBrowser.d.ts +16 -26
  110. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Class/Load/XS/XS.so +0 -0
  111. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Data/UUID/UUID.so +0 -0
  112. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/FFI/Platypus/Platypus.so +0 -0
  113. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/List/Util/Util.so +0 -0
  114. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Moose/Moose.so +0 -0
  115. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/PPI/XS/XS.so +0 -0
  116. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Package/Stash/XS/XS.so +0 -0
  117. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Params/Util/Util.so +0 -0
  118. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/Want/Want.so +0 -0
  119. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/auto/share/dist/FFI-Platypus/lib/libplfill.so +0 -0
  120. data/lib/javonet-ruby-sdk/Binaries/Perl/Linux/X64/deps/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod +96 -96
  121. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Data/UUID/UUID.xs.dll +0 -0
  122. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/PPI/XS/XS.xs.dll +0 -0
  123. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Scalar/Util/Numeric/Numeric.xs.dll +0 -0
  124. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/Want/Want.xs.dll +0 -0
  125. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/auto/autobox/autobox.xs.dll +0 -0
  126. data/lib/javonet-ruby-sdk/Binaries/Perl/Windows/X64/deps/lib/perl5/MSWin32-x64-multi-thread/perllocal.pod +19 -19
  127. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/interpreter/Interpreter.py +1 -1
  128. data/lib/javonet-ruby-sdk/Binaries/Python/javonet/core/webSocketClient/WebSocketClient.py +40 -26
  129. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/interpreter/Interpreter.py +1 -1
  130. data/lib/javonet-ruby-sdk/Binaries/Python2/javonet/core/webSocketClient/WebSocketClient.py +53 -35
  131. data/lib/javonet-ruby-sdk/Binaries/version.txt +1 -1
  132. data/lib/javonet-ruby-sdk/sdk/runtime_factory.rb +4 -4
  133. metadata +8 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 90c23113b7611eb7faec96cc85d143161c37de74e241a1cee13fd9319f0a7f8a
4
- data.tar.gz: f781b42b74e30fd53f5267a072756ccd065e5cafd1e90bf11759ee3b123d1bb1
3
+ metadata.gz: ac3d03cef32f6ce3f06d9e65d6d2bb4999b84cce9a9e02b08320792057086bba
4
+ data.tar.gz: e02b41c2dcbbe53407a3d31085378b526cf0cfff53319db0e7b0226e52276ddb
5
5
  SHA512:
6
- metadata.gz: 7de94bd42570a44c872137d27ec9e1dc58ab0b4dc89f6c76a36dcfa5ecc59d297c21406e506d4cc4d9f24cc510bb831cdf12f408644d869c45004025256c4250
7
- data.tar.gz: ae752b6cf4d3fb0326a129dfcbae0108488b81e556bdcbe5de5b52822a04e8673b318844133b1b7a5bd9e6fa7243ff64dd0abb80001803653cba27bb40886971
6
+ metadata.gz: 2d8637213103a5bd22df6ada5d9f734ea13e6f2eee638d9e44eecb58df9e423b883610f07e2f8b10e0da4de8295524bc6bde8658a830391a0639eb14b9bb9992
7
+ data.tar.gz: 97bcc0987e2086a7ab944c349004cf9cdc3c6844913f439980b734429a52c090e7ca77fc8b2bbe5c59bec8480bfc23e5fd07cee3b36c965310be1229686e6318
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
1
  source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in ruby.gemspec
4
- gemspec
4
+ gemspec
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.5.18
1
+ 2.5.20
@@ -26,12 +26,11 @@ Gem::Specification.new do |spec|
26
26
  spec.add_runtime_dependency "securerandom", '~> 0.3.1'
27
27
  spec.add_runtime_dependency "rexml", "~> 3.2"
28
28
 
29
- spec.add_development_dependency "bundler", '~> 2.5'
29
+ spec.add_development_dependency "bundler", '~> 2.6'
30
30
  spec.add_development_dependency "rake", '~> 13.2'
31
31
  spec.add_development_dependency "rspec", '~> 3.13'
32
32
  spec.add_development_dependency "rspec_junit_formatter", '~> 0.6'
33
33
  #spec.add_development_dependency "simplecov", '~> 0.22'
34
34
  #spec.add_development_dependency "simplecov-cobertura", '~> 2.1'
35
- spec.add_development_dependency "http", '~> 5.2'
36
-
35
+ spec.add_development_dependency "http", '~> 5.2.0'
37
36
  end
@@ -1 +1 @@
1
- 2.5.18
1
+ 2.5.20
@@ -1 +1 @@
1
- 2.5.18
1
+ 2.5.20
@@ -1 +1 @@
1
- 2.5.18
1
+ 2.5.20
@@ -1 +1 @@
1
- '2.5.18'
1
+ '2.5.20'
@@ -1 +1 @@
1
- '2.5.18'
1
+ '2.5.20'
@@ -47,7 +47,7 @@ class TransmitterWebsocket {
47
47
  static sendCommand(messageByteArray, connectionData) {
48
48
  const { hostname } = connectionData;
49
49
  const options = {
50
- isDisconnectedAfterMessage: true
50
+ isDisconnectedAfterMessage: false
51
51
  };
52
52
  return new import_WebSocketClient.WebSocketClient(hostname, options).send(messageByteArray);
53
53
  }
@@ -41,8 +41,7 @@ class TransmitterWebsocketBrowser {
41
41
  */
42
42
  static async sendCommand(messageByteArray, connectionData) {
43
43
  const { hostname } = connectionData;
44
- const response = new import_WebSocketClientBrowser.WebSocketClientBrowser(hostname).send(messageByteArray);
45
- return response;
44
+ return new import_WebSocketClientBrowser.WebSocketClientBrowser(hostname).send(messageByteArray);
46
45
  }
47
46
  /**
48
47
  * @async
@@ -18,18 +18,27 @@ var __copyProps = (to, from, except, desc) => {
18
18
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
19
  var WebSocketClient_exports = {};
20
20
  __export(WebSocketClient_exports, {
21
- WebSocketClient: () => WebSocketClient
21
+ WebSocketClient: () => WebSocketClient,
22
+ clients: () => clients
22
23
  });
23
24
  module.exports = __toCommonJS(WebSocketClient_exports);
24
25
  var import_Runtime = require("../../utils/Runtime.cjs");
25
26
  const import_meta = {};
26
27
  const requireDynamic = (0, import_Runtime.getRequire)(import_meta.url);
27
28
  const WebSocketStateEnum = {
29
+ CONNECTING: 0,
30
+ OPEN: 1,
31
+ CLOSING: 2,
32
+ CLOSED: 3
33
+ };
34
+ const WebSocketStateEvent = {
28
35
  OPEN: "open",
29
36
  CLOSE: "close",
30
- ERROR: "error"
37
+ ERROR: "error",
38
+ MESSAGE: "message"
31
39
  };
32
40
  let WebSocket = null;
41
+ const clients = {};
33
42
  class WebSocketClient {
34
43
  /**
35
44
  * @param {string} url
@@ -37,45 +46,14 @@ class WebSocketClient {
37
46
  */
38
47
  constructor(url, options) {
39
48
  this.url = url;
40
- this.instance = null;
41
- this.isConnected = false;
42
- this.isDisconnectedAfterMessage = options?.isDisconnectedAfterMessage ?? true;
49
+ this.isDisconnectedAfterMessage = options?.isDisconnectedAfterMessage ?? false;
43
50
  }
44
- /**
45
- * Connects to the WebSocket server.
46
- * @async
47
- * @returns {Promise<wsClient>} - A promise that resolves when the connection is established.
48
- */
49
- async connect() {
50
- if (!WebSocket) {
51
- if ((0, import_Runtime.isNodejsRuntime)()) {
52
- try {
53
- WebSocket = requireDynamic("ws");
54
- } catch (error) {
55
- if (typeof error === "object" && error && "code" in error && error.code === "MODULE_NOT_FOUND") {
56
- throw new Error("ws module not found. Please install it using npm install ws");
57
- }
58
- throw error;
59
- }
60
- }
61
- }
62
- return new Promise((resolve, reject) => {
63
- if (!WebSocket) {
64
- reject(new Error("ws client is null"));
65
- return;
66
- }
67
- const client = new WebSocket(this.url);
68
- client.on(WebSocketStateEnum.OPEN, () => {
69
- this.instance = client;
70
- resolve(client);
71
- });
72
- client.on(WebSocketStateEnum.ERROR, (error) => {
73
- reject(error);
74
- });
75
- client.on(WebSocketStateEnum.CLOSE, () => {
76
- reject(new Error("Connection closed before receiving message"));
77
- });
78
- });
51
+ /** @type {wsClient | null} */
52
+ get instance() {
53
+ return clients[this.url] || null;
54
+ }
55
+ get isConnected() {
56
+ return this.instance ? this.instance?.readyState === WebSocketStateEnum.OPEN : false;
79
57
  }
80
58
  /**
81
59
  * Sends messageArray through websocket connection
@@ -85,21 +63,36 @@ class WebSocketClient {
85
63
  */
86
64
  send(messageArray) {
87
65
  return new Promise((resolve, reject) => {
88
- ;
89
- (this.instance ? Promise.resolve(this.instance) : this._connect()).then((client) => {
66
+ const client = this.instance;
67
+ if (client) {
90
68
  client.send(
91
69
  /** @type {any} */
92
70
  messageArray
93
71
  );
94
- client.on("message", (message) => {
72
+ const messageHandler = (message) => {
95
73
  resolve(message);
96
74
  if (this.isDisconnectedAfterMessage) {
97
75
  this.disconnect();
98
76
  }
99
- });
100
- }).catch((error) => {
101
- reject(error);
102
- });
77
+ client.removeListener(WebSocketStateEvent.MESSAGE, messageHandler);
78
+ };
79
+ client.on(WebSocketStateEvent.MESSAGE, messageHandler);
80
+ } else {
81
+ this._connect().then((ws) => {
82
+ ws.send(
83
+ /** @type {any} */
84
+ messageArray
85
+ );
86
+ const messageHandler = (message) => {
87
+ resolve(message);
88
+ if (this.isDisconnectedAfterMessage) {
89
+ this.disconnect();
90
+ }
91
+ ws.removeListener(WebSocketStateEvent.MESSAGE, messageHandler);
92
+ };
93
+ ws.on(WebSocketStateEvent.MESSAGE, messageHandler);
94
+ }).catch(reject);
95
+ }
103
96
  });
104
97
  }
105
98
  /**
@@ -108,9 +101,8 @@ class WebSocketClient {
108
101
  disconnect() {
109
102
  if (this.instance) {
110
103
  this.instance.close();
111
- this.instance = null;
104
+ delete clients[this.url];
112
105
  }
113
- this.isConnected = false;
114
106
  }
115
107
  /**
116
108
  * Connects to the WebSocket server.
@@ -119,36 +111,31 @@ class WebSocketClient {
119
111
  * @returns {Promise<wsClient>} - A promise that resolves when the connection is established.
120
112
  */
121
113
  _connect() {
122
- if (!WebSocket) {
123
- if ((0, import_Runtime.isNodejsRuntime)()) {
124
- try {
125
- WebSocket = requireDynamic("ws");
126
- } catch (error) {
127
- if (
128
- /** @type {{ code?: string }} */
129
- error.code === "MODULE_NOT_FOUND"
130
- ) {
131
- throw new Error("ws module not found. Please install it using npm install ws");
132
- }
133
- throw error;
114
+ if (!WebSocket && (0, import_Runtime.isNodejsRuntime)()) {
115
+ try {
116
+ WebSocket = requireDynamic("ws");
117
+ } catch (error) {
118
+ if (
119
+ /** @type {{ code?: string }} */
120
+ error.code === "MODULE_NOT_FOUND"
121
+ ) {
122
+ throw new Error("ws module not found. Please install it using npm install ws");
134
123
  }
124
+ throw error;
135
125
  }
136
126
  }
137
127
  return new Promise((resolve, reject) => {
138
128
  if (!WebSocket) {
139
- reject(new Error("ws client is null"));
140
- return;
129
+ return reject(new Error("ws client is null"));
141
130
  }
142
- const client = new WebSocket(this.url);
143
- client.on(WebSocketStateEnum.OPEN, () => {
144
- this.isConnected = true;
145
- this.instance = client;
146
- resolve(client);
147
- });
148
- client.on(WebSocketStateEnum.ERROR, (error) => {
149
- reject(error);
150
- });
151
- client.on(WebSocketStateEnum.CLOSE, () => {
131
+ let client = clients[this.url];
132
+ if (!client) {
133
+ client = new WebSocket(this.url);
134
+ clients[this.url] = client;
135
+ }
136
+ client.on(WebSocketStateEvent.OPEN, () => resolve(client));
137
+ client.on(WebSocketStateEvent.ERROR, (error) => reject(error));
138
+ client.on(WebSocketStateEvent.CLOSE, () => {
152
139
  reject(new Error("Connection closed before receiving message"));
153
140
  });
154
141
  });
@@ -156,5 +143,6 @@ class WebSocketClient {
156
143
  }
157
144
  // Annotate the CommonJS export names for ESM import in node:
158
145
  0 && (module.exports = {
159
- WebSocketClient
146
+ WebSocketClient,
147
+ clients
160
148
  });