xconn 0.1.1 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fa95a83a4b98a6e32e84360154cc33074f10eee9a66d1e398f911d8d8cdc9637
4
- data.tar.gz: 532b8006427a1ec13ff42d78b9a58f4350599d01954236573ef0eddf245cc4b2
3
+ metadata.gz: 90143368352302b58d43e59a436f6317842edd21950335b698897af98261ac01
4
+ data.tar.gz: e7441cba5947a6bc6a1f4424b059b6c0c28626d01f71cc3d55d400da70d1622f
5
5
  SHA512:
6
- metadata.gz: ed1ac17f25849a81b5e3119937430a8531ee060fb70217f87c52e2da081903eaf133f05343456e871ac8ab1dee20dc7cf8860cb1a36f1ccf56b6c32c4827901f
7
- data.tar.gz: a2e1031c54b7518cb772b4599ba3ddd64d4136f2783aaade92917a615c003fffee0a31772d5c00c7ac6f6c7c9b8524ded4bc871d8cdfafb76b3496fb14c54eed
6
+ metadata.gz: 5a480c46a42e7e2da07f845645bf802a35a555fc1a49c29b3a6240b26da8d315bc898cd0db7f3efdab7098f5171f231dc097ef6bb631bfe53d34a7313183abe3
7
+ data.tar.gz: 583bd5880dcd8bd0f0e558a6f14a5de97ed1ae95381c95175bd6905b6b0f9e8bbe8a5c479a51ec1852e9a8b5bc233d033cde69f362cc8e49b30f7f607b1c0849
@@ -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(_code, _reason)
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
- @serializer = if protocols.include?("wamp.2.msgpack")
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
- close
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/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Wamp
4
- VERSION = "0.1.1"
4
+ VERSION = "0.1.2"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xconn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ismail Akram
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-05-31 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: cbor