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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 628a479aab315c020df8a057cf2533e2b2572b92cd81cdaff4006eae24ac3200
4
- data.tar.gz: 0df9233725d24bf5ce905090b99271bcd4f47d598eb98912d9eef810cec950be
3
+ metadata.gz: f7b7147b0be962c2d274d1483bc8f20804afc187033055ca76b46830b5380a01
4
+ data.tar.gz: 54c1b097b2f21b5ad2ba0ccfe15c2b935de6b2e924c6ccd27635dceaae885e36
5
5
  SHA512:
6
- metadata.gz: 439970962dd6c8198885d242d3165dde1f1d41c81e5b0ac2f11be97fa45e8f73d89cf94a97ef2f53521515a048bd2300357396645261609c63905a82cc7af55e
7
- data.tar.gz: 8dffa7a809059080bf01c07104936c7b25dafc40e7a9e57782438c685ed9c686c2771d7d784863861395b75a4887e9ef5358b325007fa5200a5c4819903fc84f
6
+ metadata.gz: 70c5f89236c7204ca9af93f9f7e3e965fe16092dcc6160ddbe1a97bfaf7f85206586383e020e3fba729a18819607df87eb3cd0010b391cd15c7599720fedb60b
7
+ data.tar.gz: 7a945496751f19145a63088efe91d8b06866e2cda8ff56c7fd00f5670fbd192d9437db338a20a33b92c1b69c11f454cf2fb4a55be515b54ebec78c82c5532a6d
@@ -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
  )
@@ -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
@@ -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|
@@ -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
 
@@ -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
@@ -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
@@ -79,6 +79,7 @@ module Faye
79
79
  end
80
80
 
81
81
  def write(data)
82
+ return @rack_hijack_io_reader.send_data(data) if @rack_hijack_io_reader
82
83
  return @rack_hijack_io.write(data) if @rack_hijack_io
83
84
  return @stream_send.call(data) if @stream_send
84
85
  rescue => e
@@ -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
 
@@ -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.8
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-10 00:00:00.000000000 Z
11
+ date: 2019-06-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: eventmachine