isomorfeus-transport 2.2.1 → 2.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/isomorfeus/transport/client_processor.rb +2 -3
- data/lib/isomorfeus/transport/request_agent.rb +13 -1
- data/lib/isomorfeus/transport/server_socket_processor.rb +6 -4
- data/lib/isomorfeus/transport/version.rb +1 -1
- data/lib/isomorfeus/transport/websocket_client.rb +2 -2
- metadata +9 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b76c7acbb3e9f1c210ecf2c75ff69a3fe0a029ebc1be086609aa38423214fe16
|
4
|
+
data.tar.gz: ea7ea29ee9770e909eecd104b40b1e94db9d033f054ea864eae5bf56ec35b6b2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6cfb9858b7365ddd1a54c2a3f3b91e7677dd32b50645a8645afdba8209497fb8f6915b09f73eaac02849ed9358ee800dc4621b3048d8eb1be2881b23fe69e78f
|
7
|
+
data.tar.gz: f2a1ba0bcde4a8f372de93a953a47c2a526e69b3d0c755e3de39cdc0ef637d6ae7dd8e75ee2d2a7dfd209101eee74b9b292dc3b3fb4833046049276e867f1229
|
@@ -21,9 +21,8 @@ module Isomorfeus
|
|
21
21
|
|
22
22
|
def self.process_response(response_hash)
|
23
23
|
response_hash[:response][:agent_ids].keys.each do |agent_id|
|
24
|
-
agent = Isomorfeus::Transport::RequestAgent.get
|
25
|
-
|
26
|
-
unless agent.promise.realized?
|
24
|
+
agent = Isomorfeus::Transport::RequestAgent.get(agent_id)
|
25
|
+
if agent && !agent.promise.realized?
|
27
26
|
agent.full_response = response_hash
|
28
27
|
agent.response = response_hash[:response][:agent_ids][agent_id]
|
29
28
|
agent.promise.resolve(agent)
|
@@ -10,7 +10,7 @@ module Isomorfeus
|
|
10
10
|
agents[object_id]
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def del!(object_id)
|
14
14
|
agents.delete(object_id.to_s)
|
15
15
|
end
|
16
16
|
end
|
@@ -27,7 +27,17 @@ module Isomorfeus
|
|
27
27
|
def initialize(request = nil)
|
28
28
|
@id = object_id.to_s
|
29
29
|
self.class.agents[@id] = self
|
30
|
+
current_agent = self
|
30
31
|
@promise = Promise.new
|
32
|
+
@promise.then do
|
33
|
+
Isomorfeus::Transport.unregister_request_in_progress(current_agent.id)
|
34
|
+
Isomorfeus::Transport::RequestAgent.del!(current_agent.id)
|
35
|
+
end
|
36
|
+
@promise.fail do |e|
|
37
|
+
STDERR.puts "#{e}"
|
38
|
+
Isomorfeus::Transport.unregister_request_in_progress(current_agent.id)
|
39
|
+
Isomorfeus::Transport::RequestAgent.del!(current_agent.id)
|
40
|
+
end
|
31
41
|
@request = request
|
32
42
|
@sent = false
|
33
43
|
end
|
@@ -37,6 +47,8 @@ module Isomorfeus
|
|
37
47
|
self.processed = true
|
38
48
|
Isomorfeus.raise_error(message: self.response[:error]) if self.response.key?(:error)
|
39
49
|
self.result = block.call(self)
|
50
|
+
@promise.resolve(self) unless @promise.realized?
|
51
|
+
self.result
|
40
52
|
end
|
41
53
|
end
|
42
54
|
end
|
@@ -9,10 +9,12 @@ module Isomorfeus
|
|
9
9
|
|
10
10
|
def on_message(client, data)
|
11
11
|
if Isomorfeus.development?
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
12
|
+
if Isomorfeus.server_requires_reload?
|
13
|
+
write_lock = Isomorfeus.zeitwerk_lock.try_write_lock
|
14
|
+
if write_lock
|
15
|
+
Isomorfeus.zeitwerk.reload
|
16
|
+
Isomorfeus.zeitwerk_lock.release_write_lock
|
17
|
+
end
|
16
18
|
end
|
17
19
|
Isomorfeus.zeitwerk_lock.acquire_read_lock
|
18
20
|
end
|
@@ -9,7 +9,7 @@ module Isomorfeus
|
|
9
9
|
CLOSING = 2
|
10
10
|
CLOSED = 3
|
11
11
|
|
12
|
-
class SendError < StandardError; end
|
12
|
+
class SendError < ::StandardError; end
|
13
13
|
|
14
14
|
def initialize(url, protocols = nil, headers = nil)
|
15
15
|
@url = url
|
@@ -54,7 +54,7 @@ module Isomorfeus
|
|
54
54
|
when OPEN then @native_websocket.JS.send(data)
|
55
55
|
when CONNECTING then after(50) { send(data) }
|
56
56
|
when CLOSING then Isomorfeus.raise_error(error_class: SendError, message: 'Cant send, connection is closing!')
|
57
|
-
when CLOSED then Isomorfeus.raise_error(error_class: SendError
|
57
|
+
when CLOSED then Isomorfeus.raise_error(error_class: SendError, message: 'Cant send, connection is closed!')
|
58
58
|
end
|
59
59
|
end
|
60
60
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: isomorfeus-transport
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.2.
|
4
|
+
version: 2.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jan Biedermann
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-02-
|
11
|
+
date: 2022-02-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -128,28 +128,28 @@ dependencies:
|
|
128
128
|
requirements:
|
129
129
|
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
|
-
version: 10.6.
|
131
|
+
version: 10.6.49
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
136
|
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
|
-
version: 10.6.
|
138
|
+
version: 10.6.49
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: isomorfeus-policy
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
143
|
- - '='
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: 2.2.
|
145
|
+
version: 2.2.4
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
150
|
- - '='
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: 2.2.
|
152
|
+
version: 2.2.4
|
153
153
|
- !ruby/object:Gem::Dependency
|
154
154
|
name: isomorfeus-redux
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
@@ -226,14 +226,14 @@ dependencies:
|
|
226
226
|
requirements:
|
227
227
|
- - '='
|
228
228
|
- !ruby/object:Gem::Version
|
229
|
-
version: 2.2.
|
229
|
+
version: 2.2.4
|
230
230
|
type: :development
|
231
231
|
prerelease: false
|
232
232
|
version_requirements: !ruby/object:Gem::Requirement
|
233
233
|
requirements:
|
234
234
|
- - '='
|
235
235
|
- !ruby/object:Gem::Version
|
236
|
-
version: 2.2.
|
236
|
+
version: 2.2.4
|
237
237
|
- !ruby/object:Gem::Dependency
|
238
238
|
name: rake
|
239
239
|
requirement: !ruby/object:Gem::Requirement
|
@@ -334,7 +334,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
334
334
|
- !ruby/object:Gem::Version
|
335
335
|
version: '0'
|
336
336
|
requirements: []
|
337
|
-
rubygems_version: 3.3.
|
337
|
+
rubygems_version: 3.3.7
|
338
338
|
signing_key:
|
339
339
|
specification_version: 4
|
340
340
|
summary: Channels, authetication and various transport options for Isomorfeus.
|