async-cable 0.2.0 → 0.3.0

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: b08a8dbdecddd27664602822691cad7122b5a22eb366bed16b7ca374f9e3af8c
4
- data.tar.gz: 80e91296ed27824878254ec16534168f317830195cbfc32460ab80819326e381
3
+ metadata.gz: b9aa3fe6a825d58f713ffd71b32b26bd034de7f3175ee6b9505e4f53433f6999
4
+ data.tar.gz: 5bea7df4792f6f0bf2ed0847437ac13f23972de50b443854f597b4f9b8b6defa
5
5
  SHA512:
6
- metadata.gz: d23598685d4468b8cfee8747b3ea4a151f0424c503e7e095c852ea299b468720ef3f5e5880b64c0626da09375a047a4b773df16310abd43a8a19ecf944b125ac
7
- data.tar.gz: 2a06d1e5eab1c37ef68cfc34fb3dcc114f4740a62544dac369246a8f6dc13a4dd1648e8b8c36e1a8803da61ab6fac54a991765a7406c536dea43c98ef2679705
6
+ metadata.gz: 2291b430d4dbfd1072d8dadb1643857e71e84ef749dd08f6bb97168cdb842af6edf6da703d41acc370d9899e0130fffd068ac568a0d5bf269306746e3aeefe11
7
+ data.tar.gz: aa8346b8289d1dbe14e606631506ee5a2801cef846a67b13cb0e092806f0da1c6cdf980358b43163c3b2a614fea71bd5f8363383051f741ff39a03794a0e5ff7
checksums.yaml.gz.sig CHANGED
Binary file
@@ -11,8 +11,9 @@ require_relative "socket"
11
11
  module Async
12
12
  module Cable
13
13
  class Middleware
14
- def initialize(app, server: ActionCable.server)
14
+ def initialize(app, path: "/cable", server: ActionCable.server)
15
15
  @app = app
16
+ @path = path
16
17
  @server = server
17
18
  @coder = ActiveSupport::JSON
18
19
  @protocols = ::ActionCable::INTERNAL[:protocols]
@@ -20,8 +21,12 @@ module Async
20
21
 
21
22
  attr :server
22
23
 
24
+ def valid_path?(env)
25
+ env["PATH_INFO"] == @path
26
+ end
27
+
23
28
  def call(env)
24
- if Async::WebSocket::Adapters::Rack.websocket?(env) and allow_request_origin?(env)
29
+ if valid_path?(env) and Async::WebSocket::Adapters::Rack.websocket?(env) and allow_request_origin?(env)
25
30
  Async::WebSocket::Adapters::Rack.open(env, protocols: @protocols) do |websocket|
26
31
  handle_incoming_websocket(env, websocket)
27
32
  end
@@ -43,7 +48,7 @@ module Async
43
48
  socket_task = socket.run
44
49
 
45
50
  while message = websocket.read
46
- Console.debug(self, "Received cable data:", message.buffer)
51
+ # Console.debug(self, "Received cable data:", message.buffer)
47
52
  connection.handle_incoming(@coder.decode(message.buffer))
48
53
  end
49
54
  rescue Protocol::WebSocket::ClosedError, EOFError
@@ -5,6 +5,6 @@
5
5
 
6
6
  module Async
7
7
  module Cable
8
- VERSION = "0.2.0"
8
+ VERSION = "0.3.0"
9
9
  end
10
10
  end
data/readme.md CHANGED
@@ -14,6 +14,10 @@ Please see the [project documentation](https://socketry.github.io/async-cable/)
14
14
 
15
15
  Please see the [project releases](https://socketry.github.io/async-cable/releases/index) for all releases.
16
16
 
17
+ ### v0.3.0
18
+
19
+ - Filter requests based on path - don't eat all inbound WebSocket connections.
20
+
17
21
  ### v0.2.0
18
22
 
19
23
  - Don't close the WebSocket if it is already closed.
data/releases.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # Releases
2
2
 
3
+ ## v0.3.0
4
+
5
+ - Filter requests based on path - don't eat all inbound WebSocket connections.
6
+
3
7
  ## v0.2.0
4
8
 
5
9
  - Don't close the WebSocket if it is already closed.
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: async-cable
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Samuel Williams
metadata.gz.sig CHANGED
Binary file