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