stack-service-base 0.0.40 → 0.0.41

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f4e0a13dec430cf83f2586d762576a227da5d874d7e20faded15aca72017ef34
4
- data.tar.gz: 849f36ac37f2d1a868fbeffe698dab95bd47c942ae21ad19f4df7413b74760ac
3
+ metadata.gz: 57f6986e2b0af7274d88d02271380e15e4b36023eba82a12a365089df93ae282
4
+ data.tar.gz: 11a89bb1fd1a2c8ec4ff862ab737f5f9040a4861e46ea68b871b255738071a93
5
5
  SHA512:
6
- metadata.gz: 7b8e464403a4634bfa8cca3852a870dd88bd123e983a51800aec71652097c5e36ec87ec5fdf0d342e6e3facd8d133c8be4483c008ce1353bc88f6764b1c885c7
7
- data.tar.gz: 84f2fe56bab214f9a5d61e4550dd02dfdb68afc4914929d3e8cb70137eb6c67bb72cf397cf91c0e46bc8b91c54b4e2055a855cc55c1b5a5a7e94729a7278e439
6
+ metadata.gz: 00c30180960fa2df2be60564508524d7958d99933014555a920af23c53367b92951038cbbc429a2ed6d12f8bf9bd51bb09c83447638fba32b3b47f265f9ca05b
7
+ data.tar.gz: 86118fcf28ab9a9edb5791558a78a00671f670e901b1fadecd5c3a07a9c264682d8b68c386b3543f7bccedb66da757c09aa47cd0bf7801c9969438de0bf87a23
@@ -0,0 +1,56 @@
1
+ require 'nats'
2
+ require 'nats/io/websocket'
3
+
4
+ # TODO PATCH https://github.com/nats-io/nats-pure.rb/issues/171
5
+ module NATS
6
+ module IO
7
+ class WebSocket
8
+ def initialize(options = {})
9
+ super
10
+ @options = options
11
+ end
12
+
13
+ def connect
14
+ super
15
+
16
+ setup_tls! if @uri.scheme == "wss" # WebSocket connection must be made over TLS from the beginning
17
+
18
+ @handshake = ::WebSocket::Handshake::Client.new url: @uri.to_s, **@options
19
+ @frame = ::WebSocket::Frame::Incoming::Client.new
20
+ @handshaked = false
21
+
22
+ @socket.write @handshake.to_s
23
+
24
+ until @handshaked
25
+ @handshake << method(:read).super_method.call(MAX_SOCKET_READ_BYTES)
26
+ if @handshake.finished?
27
+ @handshaked = true
28
+ end
29
+ end
30
+ end
31
+ end
32
+ end
33
+
34
+ class Client
35
+ def create_socket
36
+ socket_class = case @uri.scheme
37
+ when "nats", "tls"
38
+ NATS::IO::Socket
39
+ when "ws", "wss"
40
+ # require_relative "websocket"
41
+ # TODO Local patch
42
+ require 'nats/io/websocket'
43
+ NATS::IO::WebSocket
44
+ else
45
+ raise NotImplementedError, "#{@uri.scheme} protocol is not supported, check NATS cluster URL spelling"
46
+ end
47
+
48
+ socket_class.new(
49
+ uri: @uri,
50
+ tls: {context: tls_context, hostname: @hostname},
51
+ connect_timeout: NATS::IO::DEFAULT_CONNECT_TIMEOUT,
52
+ **@initial_options # TODO PATCH https://github.com/nats-io/nats-pure.rb/issues/171
53
+ )
54
+ end
55
+ end
56
+ end
@@ -1,13 +1,14 @@
1
1
  require "nats"
2
+ require_relative 'nats_patch_1'
2
3
 
3
- NATS_ENABLED = ENV['NATS_URL'].to_s != ''
4
+ NATS_ENABLED = ENV['SWARM_NATS_URL'].to_s != ''
4
5
 
5
- NATS_URL = ENV['NATS_URL']# || 'nats://nats_single:4222'
6
+ SWARM_NATS_URL = ENV['SWARM_NATS_URL']# || 'nats://nats_single:4222'
6
7
  NATS_STACK_NAME = ENV['STACK_NAME'] || 'undefined_stack'
7
8
  NATS_SERVICE_NAME = ENV['STACK_SERVICE_NAME'] || 'undefined_service'
8
9
 
9
10
  ENV['NATS_RECONNECT'] ||= 'true'
10
- ENV['NATS_RECONNECT_TIME_WAIT'] ||= '1000'
11
+ ENV['NATS_RECONNECT_TIME_WAIT'] ||= '30'
11
12
  ENV['NATS_MAX_RECONNECT_ATTEMPTS'] ||= '-1'
12
13
 
13
14
  module NATS
@@ -19,7 +20,7 @@ $nats_client = nil
19
20
  def initialize_nats_service
20
21
  LOGGER.info "Initializing NATS service"
21
22
 
22
- $nats_client = NATS.connect NATS_URL
23
+ $nats_client = NATS.connect SWARM_NATS_URL
23
24
 
24
25
  service = $nats_client.services.add(
25
26
  name: "#{NATS_SERVICE_NAME}_#{NATS_STACK_NAME}",
@@ -1,3 +1,3 @@
1
1
  module StackServiceBase
2
- VERSION = '0.0.40'
2
+ VERSION = '0.0.41'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stack-service-base
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.40
4
+ version: 0.0.41
5
5
  platform: ruby
6
6
  authors:
7
7
  - Artyom B
@@ -220,6 +220,7 @@ files:
220
220
  - lib/stack-service-base/database.rb
221
221
  - lib/stack-service-base/fiber_pool.rb
222
222
  - lib/stack-service-base/logging.rb
223
+ - lib/stack-service-base/nats_patch_1.rb
223
224
  - lib/stack-service-base/nats_service.rb
224
225
  - lib/stack-service-base/open_telemetry.rb
225
226
  - lib/stack-service-base/project_template/github/.github/workflows/main.yml