Class: SplitIoClient::SSE::SSEHandler
- Inherits:
-
Object
- Object
- SplitIoClient::SSE::SSEHandler
- Defined in:
- lib/splitclient-rb/sse/sse_handler.rb
Instance Attribute Summary collapse
-
#sse_client ⇒ Object
readonly
Returns the value of attribute sse_client.
Instance Method Summary collapse
- #connected? ⇒ Boolean
-
#initialize(config, splits_worker, segments_worker, sse_client) ⇒ SSEHandler
constructor
A new instance of SSEHandler.
- #start(token_jwt, channels) ⇒ Object
- #start_workers ⇒ Object
- #stop ⇒ Object
- #stop_workers ⇒ Object
Constructor Details
#initialize(config, splits_worker, segments_worker, sse_client) ⇒ SSEHandler
Returns a new instance of SSEHandler.
8 9 10 11 12 13 14 15 16 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 8 def initialize(config, splits_worker, segments_worker, sse_client) @config = config @splits_worker = splits_worker @segments_worker = segments_worker @sse_client = sse_client end |
Instance Attribute Details
#sse_client ⇒ Object (readonly)
Returns the value of attribute sse_client.
6 7 8 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 6 def sse_client @sse_client end |
Instance Method Details
#connected? ⇒ Boolean
29 30 31 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 29 def connected? @sse_client&.connected? || false end |
#start(token_jwt, channels) ⇒ Object
18 19 20 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 18 def start(token_jwt, channels) @sse_client.start("#{@config.streaming_service_url}?channels=#{channels}&v=1.1&accessToken=#{token_jwt}") end |
#start_workers ⇒ Object
33 34 35 36 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 33 def start_workers @splits_worker.start @segments_worker.start end |
#stop ⇒ Object
22 23 24 25 26 27 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 22 def stop @sse_client.close(Constants::PUSH_FORCED_STOP) stop_workers rescue StandardError => e @config.logger.debug("SSEHandler stop error: #{e.inspect}") if @config.debug_enabled end |
#stop_workers ⇒ Object
38 39 40 41 |
# File 'lib/splitclient-rb/sse/sse_handler.rb', line 38 def stop_workers @splits_worker.stop @segments_worker.stop end |