xconn 0.1.1 → 0.1.2

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 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