splitclient-rb 8.11.1.pre.rc1 → 8.11.1.pre.rc2

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: 936f987bddefefa15d687d9fd3a772d10196e2174fee301b3b86e32f11788b2d
4
- data.tar.gz: 2869f78cc88aaf326af8b0f9a59f3837f69e47ee26238ed9de7061ffb7173130
3
+ metadata.gz: 6b8826705cc51c97b0fd56af17ba520dbc20932c4c658c3e55f0ec04cd9fc850
4
+ data.tar.gz: 3eb1a3e21d490fe80b80f67f73e3372bb822a15607f2231ca3fe335f37cb49ae
5
5
  SHA512:
6
- metadata.gz: f33ee7d407f785a61a3f510ae55fc1874e63cfb62d4543d260b4daaaeab18f62e3d9fd02c44ba88a554f8be09498f904438243410b8d37a73dc9de68e8bc75ed
7
- data.tar.gz: 8ba5b3941841ec950c4e51149733edb33b1685cbf1091c772f23ff837829793aeb105da48bbaf5cc5c20342243146ecc76b865f13d16ca9c855789dfa5df02c7
6
+ metadata.gz: 2abb05c726b7019e7f56240f5b6e69d50689fae3739e714e85c7134ff47fec1bffd54b68bca6c571162a590e87e87ae090376ad7b9854f65373060ddb532bd93
7
+ data.tar.gz: b80cbe9440ec9bf0ff54b057bd95b5c248da1781d1eea157ef9baaa8ff473826c280152e45a2c41b41e8f49dc219733234671984f715b5a7119a37f5dba71b9b
@@ -16,17 +16,21 @@ module SplitIoClient
16
16
  response = @auth_api_client.authenticate(@api_key)
17
17
  @config.logger.debug("Auth service response push_enabled: #{response[:push_enabled]}") if @config.debug_enabled
18
18
 
19
- if response[:push_enabled] && @sse_handler.start(response[:token], response[:channels])
20
- schedule_next_token_refresh(response[:exp])
21
- @back_off.reset
22
- record_telemetry(response[:exp])
19
+ unless response[:push_enabled]
20
+ schedule_next_token_refresh(@back_off.interval) if response[:retry]
21
+ return false
22
+ end
23
23
 
24
- return true
24
+ unless @sse_handler.start(response[:token], response[:channels])
25
+ @config.logger.debug('Streaming server returned error') if @config.debug_enabled
26
+ stop_sse
27
+ return false
25
28
  end
26
29
 
27
- stop_sse
28
- schedule_next_token_refresh(@back_off.interval) if response[:retry]
29
- false
30
+ schedule_next_token_refresh(response[:exp])
31
+ @back_off.reset
32
+ record_telemetry(response[:exp])
33
+ true
30
34
  rescue StandardError => e
31
35
  @config.logger.error("start_sse: #{e.inspect}")
32
36
  end
@@ -37,17 +37,15 @@ module SplitIoClient
37
37
  end
38
38
 
39
39
  def close(status = nil)
40
- unless connected?
41
- @config.logger.debug('SSEClient already disconected.') if @config.debug_enabled
42
- return
43
- end
44
- @config.logger.debug("Closing SSEClient socket") if @config.debug_enabled
40
+ return if @socket.nil?
45
41
 
42
+ @config.logger.debug("Closing SSEClient socket") if @config.debug_enabled
46
43
  push_status(status)
47
44
  @connected.make_false
48
45
  @socket.sync_close = true if @socket.is_a? OpenSSL::SSL::SSLSocket
49
46
  @socket.close
50
47
  @config.logger.debug("SSEClient socket state #{@socket.state}") if @socket.is_a?(OpenSSL::SSL::SSLSocket) && @config.debug_enabled
48
+ @socket = nil
51
49
  rescue StandardError => e
52
50
  @config.logger.error("SSEClient close Error: #{e.inspect}")
53
51
  end
@@ -80,7 +78,7 @@ module SplitIoClient
80
78
  @config.threads[:connect_stream] = Thread.new do
81
79
  @config.logger.info('Starting connect_stream thread ...')
82
80
  new_status = connect_stream(latch)
83
- push_status(new_status)
81
+ push_status(new_status) unless new_status.nil?
84
82
  @config.logger.info('connect_stream thread finished.')
85
83
  end
86
84
  end
@@ -93,11 +91,6 @@ module SplitIoClient
93
91
  begin
94
92
  partial_data = @socket.readpartial(10_000)
95
93
  read_first_event(partial_data, latch)
96
-
97
- if partial_data == :eof
98
- @config.logger.error("SSE recived EOF unexpectedly")
99
- return Constants::PUSH_RETRYABLE_ERROR
100
- end
101
94
  rescue IO::WaitReadable => e
102
95
  @config.logger.debug("SSE client IO::WaitReadable transient error: #{e.inspect}") if @config.debug_enabled
103
96
  IO.select([@socket], nil, nil, @read_timeout)
@@ -110,7 +103,7 @@ module SplitIoClient
110
103
  @config.logger.error("SSE read operation timed out!: #{e.inspect}")
111
104
  return Constants::PUSH_RETRYABLE_ERROR
112
105
  rescue EOFError => e
113
- @config.logger.error("SSE read operation EOF Exception!: #{e.inspect}")
106
+ @config.logger.error("SSE read operation EOF, server closed the connection, will reconnect: #{e.inspect}")
114
107
  return Constants::PUSH_RETRYABLE_ERROR
115
108
  rescue Errno::EBADF, IOError => e
116
109
  @config.logger.error("SSE read operation EBADF or IOError: #{e.inspect}")
@@ -1,3 +1,3 @@
1
1
  module SplitIoClient
2
- VERSION = '8.11.1-rc1'
2
+ VERSION = '8.11.1-rc2'
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: splitclient-rb
3
3
  version: !ruby/object:Gem::Version
4
- version: 8.11.1.pre.rc1
4
+ version: 8.11.1.pre.rc2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Split Software