xconn 0.1.0 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/wamp/message_handler/invocation.rb +4 -1
- data/lib/wamp/message_handler/result.rb +5 -1
- data/lib/wamp/router/connection.rb +17 -9
- data/lib/wamp/type/invocation.rb +9 -0
- data/lib/wamp/version.rb +1 -1
- data/wamp.gemspec +1 -1
- metadata +8 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 90143368352302b58d43e59a436f6317842edd21950335b698897af98261ac01
|
4
|
+
data.tar.gz: e7441cba5947a6bc6a1f4424b059b6c0c28626d01f71cc3d55d400da70d1622f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5a480c46a42e7e2da07f845645bf802a35a555fc1a49c29b3a6240b26da8d315bc898cd0db7f3efdab7098f5171f231dc097ef6bb631bfe53d34a7313183abe3
|
7
|
+
data.tar.gz: 583bd5880dcd8bd0f0e558a6f14a5de97ed1ae95381c95175bd6905b6b0f9e8bbe8a5c479a51ec1852e9a8b5bc233d033cde69f362cc8e49b30f7f607b1c0849
|
@@ -16,7 +16,10 @@ module Wamp
|
|
16
16
|
end
|
17
17
|
|
18
18
|
def invocation_response
|
19
|
-
Type::Invocation.new(args: message.args, kwargs: message.kwargs, details: message.details)
|
19
|
+
Type::Invocation.new(args: message.args, kwargs: message.kwargs, details: message.details).tap do |invocation|
|
20
|
+
invocation.connection = connection
|
21
|
+
invocation.request_id = message.request_id
|
22
|
+
end
|
20
23
|
end
|
21
24
|
|
22
25
|
private
|
@@ -6,7 +6,11 @@ module Wamp
|
|
6
6
|
class Result < Base
|
7
7
|
def handle
|
8
8
|
validate_received_message
|
9
|
-
|
9
|
+
if message.details[:progress]
|
10
|
+
store[store_key].fetch(:handler).call(response)
|
11
|
+
else
|
12
|
+
stored_data.fetch(:handler).call(response)
|
13
|
+
end
|
10
14
|
end
|
11
15
|
|
12
16
|
def response
|
@@ -18,14 +18,15 @@ module Wamp
|
|
18
18
|
OPEN = 1
|
19
19
|
CLOSING = 2
|
20
20
|
CLOSED = 3
|
21
|
+
SUPPORTED_PROTOCOLS = ["wamp.2.msgpack", "wamp.2.cbor", "wamp.2.json"].freeze
|
21
22
|
|
22
23
|
attr_reader :socket, :session, :acceptor
|
23
24
|
|
24
|
-
def initialize(socket, &cleanup)
|
25
|
-
super()
|
25
|
+
def initialize(socket, &cleanup) # rubocop:disable Lint/MissingSuper
|
26
|
+
# super() # on_connect() does what super() does
|
26
27
|
@cleanup = cleanup
|
27
28
|
@socket = socket
|
28
|
-
@driver = WebSocket::Driver.server(self)
|
29
|
+
@driver = WebSocket::Driver.server(self, protocols: SUPPORTED_PROTOCOLS)
|
29
30
|
@driver.on(:open) { on_open(_1) }
|
30
31
|
@driver.on(:message) { on_message(_1.data) }
|
31
32
|
@driver.on(:close) { |evt| begin_close(evt.reason, evt.code) }
|
@@ -57,7 +58,7 @@ module Wamp
|
|
57
58
|
return if @ready_state == CLOSED
|
58
59
|
|
59
60
|
@ready_state = CLOSED
|
60
|
-
@driver.close
|
61
|
+
@driver.close(*@close_params)
|
61
62
|
socket.close
|
62
63
|
end
|
63
64
|
|
@@ -128,21 +129,28 @@ module Wamp
|
|
128
129
|
@driver.close(message.code, message.reason)
|
129
130
|
end
|
130
131
|
|
131
|
-
def close(
|
132
|
-
@driver.close
|
132
|
+
def close(code, reason)
|
133
|
+
@driver.close(reason, code)
|
133
134
|
end
|
134
135
|
|
135
136
|
attr_reader :serializer
|
136
137
|
|
137
|
-
def choose_serializer_from(protocols)
|
138
|
-
|
138
|
+
def choose_serializer_from(protocols) # rubocop:disable Metrics/MethodLength
|
139
|
+
common_protocols = protocols.to_s.split(",") & SUPPORTED_PROTOCOLS
|
140
|
+
protocol = common_protocols[0].to_s
|
141
|
+
|
142
|
+
@serializer = if protocol.include?("wamp.2.msgpack")
|
139
143
|
Wampproto::Serializer::Msgpack
|
140
144
|
elsif protocols.include?("wamp.2.cbor")
|
141
145
|
Wampproto::Serializer::Cbor
|
142
146
|
elsif protocols.include?("wamp.2.json")
|
143
147
|
Wampproto::Serializer::JSON
|
144
148
|
else
|
145
|
-
|
149
|
+
reason = "on_connect: protocols not supported '#{protocols}'."
|
150
|
+
code = 1006
|
151
|
+
puts reason
|
152
|
+
@close_params = [reason, code]
|
153
|
+
finalize_close
|
146
154
|
end
|
147
155
|
end
|
148
156
|
end
|
data/lib/wamp/type/invocation.rb
CHANGED
@@ -4,6 +4,7 @@ module Wamp
|
|
4
4
|
module Type
|
5
5
|
# Invocation Type
|
6
6
|
class Invocation
|
7
|
+
attr_writer :connection, :request_id
|
7
8
|
attr_reader :args, :kwargs, :details
|
8
9
|
|
9
10
|
def initialize(args: [], kwargs: {}, details: {})
|
@@ -11,6 +12,14 @@ module Wamp
|
|
11
12
|
@kwargs = kwargs
|
12
13
|
@details = details
|
13
14
|
end
|
15
|
+
|
16
|
+
def progress(result)
|
17
|
+
@connection.transmit @connection.session.send_message(response(result))
|
18
|
+
end
|
19
|
+
|
20
|
+
def response(result)
|
21
|
+
Wampproto::Message::Yield.new(@request_id, result.details, *result.args, **result.kwargs)
|
22
|
+
end
|
14
23
|
end
|
15
24
|
end
|
16
25
|
end
|
data/lib/wamp/version.rb
CHANGED
data/wamp.gemspec
CHANGED
@@ -34,7 +34,7 @@ Gem::Specification.new do |spec|
|
|
34
34
|
spec.add_dependency "ed25519", "~> 1.3"
|
35
35
|
spec.add_dependency "msgpack", "~> 1.7.2"
|
36
36
|
spec.add_dependency "nio4r", "~> 2.7"
|
37
|
-
spec.add_dependency "wampproto", "~> 0.1.
|
37
|
+
spec.add_dependency "wampproto", "~> 0.1.2"
|
38
38
|
spec.add_dependency "websocket-driver", "~> 0.7"
|
39
39
|
spec.metadata["rubygems_mfa_required"] = "true"
|
40
40
|
end
|
metadata
CHANGED
@@ -1,13 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xconn
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ismail Akram
|
8
|
+
autorequire:
|
8
9
|
bindir: bin
|
9
10
|
cert_chain: []
|
10
|
-
date: 2024-
|
11
|
+
date: 2024-06-04 00:00:00.000000000 Z
|
11
12
|
dependencies:
|
12
13
|
- !ruby/object:Gem::Dependency
|
13
14
|
name: cbor
|
@@ -71,14 +72,14 @@ dependencies:
|
|
71
72
|
requirements:
|
72
73
|
- - "~>"
|
73
74
|
- !ruby/object:Gem::Version
|
74
|
-
version: 0.1.
|
75
|
+
version: 0.1.2
|
75
76
|
type: :runtime
|
76
77
|
prerelease: false
|
77
78
|
version_requirements: !ruby/object:Gem::Requirement
|
78
79
|
requirements:
|
79
80
|
- - "~>"
|
80
81
|
- !ruby/object:Gem::Version
|
81
|
-
version: 0.1.
|
82
|
+
version: 0.1.2
|
82
83
|
- !ruby/object:Gem::Dependency
|
83
84
|
name: websocket-driver
|
84
85
|
requirement: !ruby/object:Gem::Requirement
|
@@ -203,6 +204,7 @@ metadata:
|
|
203
204
|
homepage_uri: https://github.com/xconnio/wamp.rb
|
204
205
|
source_code_uri: https://github.com/xconnio/wamp.rb
|
205
206
|
rubygems_mfa_required: 'true'
|
207
|
+
post_install_message:
|
206
208
|
rdoc_options: []
|
207
209
|
require_paths:
|
208
210
|
- lib
|
@@ -217,7 +219,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
217
219
|
- !ruby/object:Gem::Version
|
218
220
|
version: '0'
|
219
221
|
requirements: []
|
220
|
-
rubygems_version: 3.
|
222
|
+
rubygems_version: 3.5.3
|
223
|
+
signing_key:
|
221
224
|
specification_version: 4
|
222
225
|
summary: WAMP(Web Application Messaging Protocol) ruby client
|
223
226
|
test_files: []
|