faye-websocket 0.10.8 → 0.10.9
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.
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
|