signalwire 2.3.0 → 2.3.1
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 +4 -4
- data/.drone.yml +2 -1
- data/CHANGELOG.md +4 -0
- data/lib/signalwire/blade.rb +1 -0
- data/lib/signalwire/blade/connection.rb +29 -16
- data/lib/signalwire/blade/message/ping.rb +16 -0
- data/lib/signalwire/relay/constants.rb +1 -1
- data/lib/signalwire/version.rb +1 -1
- data/signalwire.gemspec +1 -1
- metadata +6 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 37ac58e5e91849e4c0d59ab3958741297f2964e00b839759d165c90231ad226f
|
4
|
+
data.tar.gz: 1413019319f177546936cc684447ba417838cb7d35fdcd4b8b7d1a08719569ca
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4e2c0471c12a90e88c288457240506ea796e02de1bbbd4e5451f4457d4b19d489fc803326cdffd700fb86f34cef57ab5cc6521f6b1b8556ef3778d1e65b61b4b
|
7
|
+
data.tar.gz: d2833633a7461d91d5e5325e8f9869c033c529564969170b8243c6a2cf57b0016c849bdf623070fad7d8a25636862b3d81a5385cb1f58b5e238b86ef13c34974
|
data/.drone.yml
CHANGED
data/CHANGELOG.md
CHANGED
@@ -5,6 +5,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm
|
|
5
5
|
|
6
6
|
## [Unreleased]
|
7
7
|
|
8
|
+
## [2.3.1] - 2019-12-20
|
9
|
+
### Changed
|
10
|
+
- Keepalive now uses `blade.ping`.
|
11
|
+
|
8
12
|
## [2.3.0] - 2019-10-22
|
9
13
|
### Added
|
10
14
|
- Add `pause` and `resume` on `PlayAction`.
|
data/lib/signalwire/blade.rb
CHANGED
@@ -25,6 +25,8 @@ module Signalwire::Blade
|
|
25
25
|
@inbound_queue = EM::Queue.new
|
26
26
|
@outbound_queue = EM::Queue.new
|
27
27
|
|
28
|
+
@keep_alive_timer = nil
|
29
|
+
|
28
30
|
@shutdown_list = []
|
29
31
|
end
|
30
32
|
|
@@ -37,7 +39,7 @@ module Signalwire::Blade
|
|
37
39
|
end
|
38
40
|
|
39
41
|
def reconnect!
|
40
|
-
|
42
|
+
clear_connections
|
41
43
|
return if @shutdown
|
42
44
|
sleep Signalwire::Blade::RECONNECT_PERIOD
|
43
45
|
logger.info "Attempting reconnection"
|
@@ -69,13 +71,14 @@ module Signalwire::Blade
|
|
69
71
|
begin
|
70
72
|
@connected = true
|
71
73
|
myreq = connect_request
|
72
|
-
|
74
|
+
@pong = nil
|
73
75
|
|
74
76
|
write_command(myreq) do |event|
|
75
77
|
@session_id = event.dig(:result, :sessionid) unless @session_id
|
76
78
|
@node_id = event.dig(:result, :nodeid) unless @node_d
|
77
79
|
logger.info "Blade Session connected with id: #{@session_id}"
|
78
80
|
broadcast :connected, event
|
81
|
+
keep_alive
|
79
82
|
end
|
80
83
|
|
81
84
|
rescue StandardError => e
|
@@ -127,18 +130,28 @@ module Signalwire::Blade
|
|
127
130
|
block_given? ? write_command(Execute.new(params), &block) : write_command(Execute.new(params))
|
128
131
|
end
|
129
132
|
|
133
|
+
def ping(&block)
|
134
|
+
block_given? ? write_command(Ping.new, &block) : write_command(Ping.new)
|
135
|
+
end
|
136
|
+
|
130
137
|
def subscribe(params, &block)
|
131
138
|
block_given? ? write_command(Subscribe.new(params), &block) : write_command(Subscribe.new(params))
|
132
139
|
end
|
133
140
|
|
134
141
|
def handle_close
|
142
|
+
logger.warn "WS Socket closed!"
|
135
143
|
reconnect!
|
136
144
|
end
|
137
145
|
|
138
|
-
def
|
139
|
-
# logger.info 'Stopping Blade event loop'
|
146
|
+
def clear_connections
|
140
147
|
@ws = nil
|
141
148
|
@connected = false
|
149
|
+
@keep_alive_timer.cancel if @keep_alive_timer
|
150
|
+
end
|
151
|
+
|
152
|
+
def disconnect!
|
153
|
+
# logger.info 'Stopping Blade event loop'
|
154
|
+
clear_connections
|
142
155
|
EM.stop
|
143
156
|
end
|
144
157
|
|
@@ -169,19 +182,19 @@ module Signalwire::Blade
|
|
169
182
|
@connected == true
|
170
183
|
end
|
171
184
|
|
172
|
-
def
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
185
|
+
def keep_alive
|
186
|
+
@pong = false
|
187
|
+
|
188
|
+
ping do
|
189
|
+
@pong = true
|
190
|
+
end
|
191
|
+
|
192
|
+
@keep_alive_timer = EventMachine::Timer.new(Signalwire::Relay::PING_TIMEOUT) do
|
193
|
+
if @pong === false
|
194
|
+
logger.error "Ping failed"
|
178
195
|
reconnect! if connected?
|
179
|
-
|
180
|
-
|
181
|
-
if @connected
|
182
|
-
@ws.ping 'detecting presence' do
|
183
|
-
timeouter.cancel
|
184
|
-
end
|
196
|
+
else
|
197
|
+
keep_alive
|
185
198
|
end
|
186
199
|
end
|
187
200
|
end
|
data/lib/signalwire/version.rb
CHANGED
data/signalwire.gemspec
CHANGED
@@ -24,7 +24,7 @@ Gem::Specification.new do |spec|
|
|
24
24
|
|
25
25
|
spec.required_ruby_version = '>= 2.0'
|
26
26
|
|
27
|
-
spec.add_development_dependency 'bundler', '~> 1
|
27
|
+
spec.add_development_dependency 'bundler', '~> 2.1'
|
28
28
|
spec.add_development_dependency 'bundler-audit', '~> 0.6.1'
|
29
29
|
spec.add_development_dependency 'guard-rspec', '~> 4.7.3'
|
30
30
|
spec.add_development_dependency 'rake', '~> 10.0'
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: signalwire
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.3.
|
4
|
+
version: 2.3.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- SignalWire Team
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '1
|
19
|
+
version: '2.1'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '1
|
26
|
+
version: '2.1'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler-audit
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -277,6 +277,7 @@ files:
|
|
277
277
|
- lib/signalwire/blade/message.rb
|
278
278
|
- lib/signalwire/blade/message/connect.rb
|
279
279
|
- lib/signalwire/blade/message/execute.rb
|
280
|
+
- lib/signalwire/blade/message/ping.rb
|
280
281
|
- lib/signalwire/blade/message/subscribe.rb
|
281
282
|
- lib/signalwire/common.rb
|
282
283
|
- lib/signalwire/logger.rb
|
@@ -367,7 +368,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
367
368
|
- !ruby/object:Gem::Version
|
368
369
|
version: '0'
|
369
370
|
requirements: []
|
370
|
-
rubygems_version: 3.0.
|
371
|
+
rubygems_version: 3.0.6
|
371
372
|
signing_key:
|
372
373
|
specification_version: 4
|
373
374
|
summary: Ruby client for Signalwire
|