faye-websocket 0.10.8 → 0.10.9
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of faye-websocket might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/CHANGELOG.md +6 -0
- data/README.md +4 -4
- data/examples/app.rb +2 -2
- data/examples/autobahn_client.rb +7 -7
- data/examples/client.rb +2 -2
- data/examples/server.rb +1 -1
- data/lib/faye/eventsource.rb +4 -4
- data/lib/faye/rack_stream.rb +1 -0
- data/lib/faye/websocket.rb +1 -1
- data/lib/faye/websocket/api.rb +1 -1
- data/lib/faye/websocket/api/event.rb +1 -1
- data/lib/faye/websocket/api/event_target.rb +2 -2
- data/lib/faye/websocket/client.rb +4 -4
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7b7147b0be962c2d274d1483bc8f20804afc187033055ca76b46830b5380a01
|
4
|
+
data.tar.gz: 54c1b097b2f21b5ad2ba0ccfe15c2b935de6b2e924c6ccd27635dceaae885e36
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 70c5f89236c7204ca9af93f9f7e3e965fe16092dcc6160ddbe1a97bfaf7f85206586383e020e3fba729a18819607df87eb3cd0010b391cd15c7599720fedb60b
|
7
|
+
data.tar.gz: 7a945496751f19145a63088efe91d8b06866e2cda8ff56c7fd00f5670fbd192d9437db338a20a33b92c1b69c11f454cf2fb4a55be515b54ebec78c82c5532a6d
|
data/CHANGELOG.md
CHANGED
@@ -1,9 +1,15 @@
|
|
1
|
+
### 0.10.9 / 2019-06-13
|
2
|
+
|
3
|
+
- Use the EventMachine API rather than `IO#write` to write data; this uses the
|
4
|
+
event loop and avoids getting blocked by slow clients
|
5
|
+
|
1
6
|
### 0.10.8 / 2019-06-10
|
2
7
|
|
3
8
|
- In the case of a close timeout, don't block on waiting for writing to the
|
4
9
|
socket to complete
|
5
10
|
- Fix a race condition that caused a timeout not to be cancelled immediately
|
6
11
|
when the WebSocket is closed
|
12
|
+
- Change license from MIT to Apache 2.0
|
7
13
|
|
8
14
|
### 0.10.7 / 2017-02-22
|
9
15
|
|
data/README.md
CHANGED
@@ -60,7 +60,7 @@ App = lambda do |env|
|
|
60
60
|
|
61
61
|
else
|
62
62
|
# Normal HTTP request
|
63
|
-
[200, {'Content-Type' => 'text/plain'}, ['Hello']]
|
63
|
+
[200, { 'Content-Type' => 'text/plain' }, ['Hello']]
|
64
64
|
end
|
65
65
|
end
|
66
66
|
```
|
@@ -128,7 +128,7 @@ including any authorization information and custom headers you require:
|
|
128
128
|
ws = Faye::WebSocket::Client.new('ws://www.example.com/', [], {
|
129
129
|
:proxy => {
|
130
130
|
:origin => 'http://username:password@proxy.example.com',
|
131
|
-
:headers => {'User-Agent' => 'ruby'}
|
131
|
+
:headers => { 'User-Agent' => 'ruby' }
|
132
132
|
}
|
133
133
|
})
|
134
134
|
```
|
@@ -256,7 +256,7 @@ App = lambda do |env|
|
|
256
256
|
|
257
257
|
else
|
258
258
|
# Normal HTTP request
|
259
|
-
[200, {'Content-Type' => 'text/plain'}, ['Hello']]
|
259
|
+
[200, { 'Content-Type' => 'text/plain' }, ['Hello']]
|
260
260
|
end
|
261
261
|
end
|
262
262
|
```
|
@@ -293,7 +293,7 @@ every 15 seconds and is retryable every 10 seconds if the connection is broken:
|
|
293
293
|
|
294
294
|
```ruby
|
295
295
|
es = Faye::EventSource.new(es,
|
296
|
-
:headers => {'Access-Control-Allow-Origin' => '*'},
|
296
|
+
:headers => { 'Access-Control-Allow-Origin' => '*' },
|
297
297
|
:ping => 15,
|
298
298
|
:retry => 10
|
299
299
|
)
|
data/examples/app.rb
CHANGED
@@ -3,7 +3,7 @@ require 'permessage_deflate'
|
|
3
3
|
require 'rack'
|
4
4
|
|
5
5
|
static = Rack::File.new(File.dirname(__FILE__))
|
6
|
-
options = {:extensions => [PermessageDeflate], :ping => 5}
|
6
|
+
options = { :extensions => [PermessageDeflate], :ping => 5 }
|
7
7
|
|
8
8
|
App = lambda do |env|
|
9
9
|
if Faye::WebSocket.websocket?(env)
|
@@ -29,7 +29,7 @@ App = lambda do |env|
|
|
29
29
|
|
30
30
|
loop = EM.add_periodic_timer(2) do
|
31
31
|
time += 1
|
32
|
-
es.send("Time: #{time}")
|
32
|
+
es.send("Time: #{ time }")
|
33
33
|
EM.add_timer(1) do
|
34
34
|
es.send('Update!!', :event => 'update', :id => time) if es
|
35
35
|
end
|
data/examples/autobahn_client.rb
CHANGED
@@ -7,30 +7,30 @@ require 'progressbar'
|
|
7
7
|
EM.run {
|
8
8
|
ruby = RUBY_PLATFORM =~ /java/ ? 'jruby' : 'mri-ruby'
|
9
9
|
version = defined?(RUBY_ENGINE_VERSION) ? RUBY_ENGINE_VERSION : RUBY_VERSION
|
10
|
-
version += " (#{RUBY_VERSION})" if ruby == 'jruby'
|
10
|
+
version += " (#{ RUBY_VERSION })" if ruby == 'jruby'
|
11
11
|
|
12
12
|
host = 'ws://0.0.0.0:9001'
|
13
|
-
agent = CGI.escape("#{ruby}-#{version}")
|
13
|
+
agent = CGI.escape("#{ ruby }-#{ version }")
|
14
14
|
cases = 0
|
15
|
-
options = {:extensions => [PermessageDeflate]}
|
15
|
+
options = { :extensions => [PermessageDeflate] }
|
16
16
|
|
17
|
-
socket = Faye::WebSocket::Client.new("#{host}/getCaseCount")
|
17
|
+
socket = Faye::WebSocket::Client.new("#{ host }/getCaseCount")
|
18
18
|
progress = nil
|
19
19
|
|
20
20
|
socket.onmessage = lambda do |event|
|
21
|
-
puts "Total cases to run: #{event.data}"
|
21
|
+
puts "Total cases to run: #{ event.data }"
|
22
22
|
cases = event.data.to_i
|
23
23
|
progress = ProgressBar.create(:title => 'Autobahn', :total => cases)
|
24
24
|
end
|
25
25
|
|
26
26
|
run_case = lambda do |n|
|
27
27
|
if n > cases
|
28
|
-
socket = Faye::WebSocket::Client.new("#{host}/updateReports?agent=#{agent}")
|
28
|
+
socket = Faye::WebSocket::Client.new("#{ host }/updateReports?agent=#{ agent }")
|
29
29
|
socket.onclose = lambda { |e| EM.stop }
|
30
30
|
next
|
31
31
|
end
|
32
32
|
|
33
|
-
url = "#{host}/runCase?case=#{n}&agent=#{agent}"
|
33
|
+
url = "#{ host }/runCase?case=#{ n }&agent=#{ agent }"
|
34
34
|
socket = Faye::WebSocket::Client.new(url, [], options)
|
35
35
|
|
36
36
|
socket.onmessage = lambda do |event|
|
data/examples/client.rb
CHANGED
@@ -8,8 +8,8 @@ EM.run {
|
|
8
8
|
proxy = ARGV[1]
|
9
9
|
|
10
10
|
ws = Faye::WebSocket::Client.new(url, [],
|
11
|
-
:proxy => {:origin => proxy, :headers => {'User-Agent' => 'Echo'}},
|
12
|
-
:headers => {'Origin' => 'http://faye.jcoglan.com'},
|
11
|
+
:proxy => { :origin => proxy, :headers => { 'User-Agent' => 'Echo' } },
|
12
|
+
:headers => { 'Origin' => 'http://faye.jcoglan.com' },
|
13
13
|
:extensions => [PermessageDeflate]
|
14
14
|
)
|
15
15
|
|
data/examples/server.rb
CHANGED
@@ -24,7 +24,7 @@ when 'puma'
|
|
24
24
|
require 'puma/events'
|
25
25
|
events = Puma::Events.new($stdout, $stderr)
|
26
26
|
binder = Puma::Binder.new(events)
|
27
|
-
binder.parse(["tcp://0.0.0.0:#{port}"], App)
|
27
|
+
binder.parse(["tcp://0.0.0.0:#{ port }"], App)
|
28
28
|
server = Puma::Server.new(App, events)
|
29
29
|
server.binder = binder
|
30
30
|
server.run.join
|
data/lib/faye/eventsource.rb
CHANGED
@@ -63,7 +63,7 @@ module Faye
|
|
63
63
|
end
|
64
64
|
|
65
65
|
private
|
66
|
-
|
66
|
+
|
67
67
|
def open
|
68
68
|
return unless @ready_state == WebSocket::API::CONNECTING
|
69
69
|
|
@@ -83,9 +83,9 @@ module Faye
|
|
83
83
|
gsub(/(\r\n|\r|\n)/, '\1data: ')
|
84
84
|
|
85
85
|
frame = ""
|
86
|
-
frame << "event: #{options[:event]}\r\n" if options[:event]
|
87
|
-
frame << "id: #{options[:id]}\r\n" if options[:id]
|
88
|
-
frame << "data: #{message}\r\n\r\n"
|
86
|
+
frame << "event: #{ options[:event] }\r\n" if options[:event]
|
87
|
+
frame << "id: #{ options[:id] }\r\n" if options[:id]
|
88
|
+
frame << "data: #{ message }\r\n\r\n"
|
89
89
|
|
90
90
|
@stream.write(frame)
|
91
91
|
true
|
data/lib/faye/rack_stream.rb
CHANGED
data/lib/faye/websocket.rb
CHANGED
@@ -44,7 +44,7 @@ module Faye
|
|
44
44
|
def self.load_adapter(backend)
|
45
45
|
const = Kernel.const_get(ADAPTERS[backend]) rescue nil
|
46
46
|
require(backend) unless const
|
47
|
-
path = File.expand_path("../adapters/#{backend}.rb", __FILE__)
|
47
|
+
path = File.expand_path("../adapters/#{ backend }.rb", __FILE__)
|
48
48
|
require(path) if File.file?(path)
|
49
49
|
end
|
50
50
|
|
data/lib/faye/websocket/api.rb
CHANGED
@@ -83,7 +83,7 @@ module Faye
|
|
83
83
|
unless code == 1000 or (code >= 3000 and code <= 4999)
|
84
84
|
raise ArgumentError, "Failed to execute 'close' on WebSocket: " +
|
85
85
|
"The code must be either 1000, or between 3000 and 4999. " +
|
86
|
-
"#{code} is neither."
|
86
|
+
"#{ code } is neither."
|
87
87
|
end
|
88
88
|
|
89
89
|
@ready_state = CLOSING unless @ready_state == CLOSED
|
@@ -10,7 +10,7 @@ module Faye::WebSocket::API
|
|
10
10
|
|
11
11
|
def initialize(event_type, options)
|
12
12
|
@type = event_type
|
13
|
-
options.each { |key, value| instance_variable_set("@#{key}", value) }
|
13
|
+
options.each { |key, value| instance_variable_set("@#{ key }", value) }
|
14
14
|
end
|
15
15
|
|
16
16
|
def init_event(event_type, can_bubble, cancelable)
|
@@ -5,10 +5,10 @@ module Faye::WebSocket::API
|
|
5
5
|
events = %w[open message error close]
|
6
6
|
|
7
7
|
events.each do |event_type|
|
8
|
-
define_method "on#{event_type}=" do |handler|
|
8
|
+
define_method "on#{ event_type }=" do |handler|
|
9
9
|
EventMachine.next_tick do
|
10
10
|
flush(event_type, handler)
|
11
|
-
instance_variable_set("@on#{event_type}", handler)
|
11
|
+
instance_variable_set("@on#{ event_type }", handler)
|
12
12
|
end
|
13
13
|
end
|
14
14
|
end
|
@@ -7,7 +7,7 @@ module Faye
|
|
7
7
|
extend Forwardable
|
8
8
|
include API
|
9
9
|
|
10
|
-
DEFAULT_PORTS = {'http' => 80, 'https' => 443, 'ws' => 80, 'wss' => 443}
|
10
|
+
DEFAULT_PORTS = { 'http' => 80, 'https' => 443, 'ws' => 80, 'wss' => 443 }
|
11
11
|
SECURE_PROTOCOLS = ['https', 'wss']
|
12
12
|
|
13
13
|
def_delegators :@driver, :headers, :status
|
@@ -29,7 +29,7 @@ module Faye
|
|
29
29
|
conn.parent = self
|
30
30
|
end
|
31
31
|
rescue => error
|
32
|
-
emit_error("Network error: #{url}: #{error.message}")
|
32
|
+
emit_error("Network error: #{ url }: #{ error.message }")
|
33
33
|
finalize_close
|
34
34
|
end
|
35
35
|
|
@@ -51,7 +51,7 @@ module Faye
|
|
51
51
|
@proxy = nil
|
52
52
|
|
53
53
|
if secure
|
54
|
-
origin_tls = {:sni_hostname => uri.host}.merge(@origin_tls)
|
54
|
+
origin_tls = { :sni_hostname => uri.host }.merge(@origin_tls)
|
55
55
|
@stream.start_tls(origin_tls)
|
56
56
|
end
|
57
57
|
|
@@ -63,7 +63,7 @@ module Faye
|
|
63
63
|
@stream = stream
|
64
64
|
|
65
65
|
if @secure
|
66
|
-
socket_tls = {:sni_hostname => URI.parse(@url).host}.merge(@socket_tls)
|
66
|
+
socket_tls = { :sni_hostname => URI.parse(@url).host }.merge(@socket_tls)
|
67
67
|
@stream.start_tls(socket_tls)
|
68
68
|
end
|
69
69
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: faye-websocket
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.9
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Coglan
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-06-
|
11
|
+
date: 2019-06-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: eventmachine
|