examples/autobahn_client.rb in faye-websocket-0.8.0 vs examples/autobahn_client.rb in faye-websocket-0.9.0
- old
+ new
@@ -1,50 +1,48 @@
require 'rubygems'
require 'bundler/setup'
-require 'faye/websocket'
require 'cgi'
+require 'faye/websocket'
+require 'permessage_deflate'
require 'progressbar'
EM.run {
- host = 'ws://localhost:9001'
- ruby = RUBY_PLATFORM =~ /java/ ? 'jruby' : 'ruby'
- agent = "#{ruby}-#{RUBY_VERSION}"
- cases = 0
- skip = []
+ host = 'ws://localhost:9001'
+ ruby = RUBY_PLATFORM =~ /java/ ? 'jruby' : 'cruby'
+ agent = CGI.escape("#{ruby}-#{RUBY_VERSION}")
+ cases = 0
+ options = {:extensions => [PermessageDeflate]}
socket = Faye::WebSocket::Client.new("#{host}/getCaseCount")
progress = nil
socket.onmessage = lambda do |event|
puts "Total cases to run: #{event.data}"
cases = event.data.to_i
progress = ProgressBar.new('Autobahn', cases)
end
- socket.onclose = lambda do |event|
- run_case = lambda do |n|
- progress.inc
+ run_case = lambda do |n|
+ if n > cases
+ socket = Faye::WebSocket::Client.new("#{host}/updateReports?agent=#{agent}")
+ progress.finish
+ socket.onclose = lambda { |e| EM.stop }
+ next
+ end
- if n > cases
- socket = Faye::WebSocket::Client.new("#{host}/updateReports?agent=#{CGI.escape agent}")
- progress.finish
- socket.onclose = lambda { |e| EM.stop }
+ url = "#{host}/runCase?case=#{n}&agent=#{agent}"
+ socket = Faye::WebSocket::Client.new(url, nil, options)
- elsif skip.include?(n)
- EM.next_tick { run_case.call(n+1) }
+ socket.onmessage = lambda do |event|
+ socket.send(event.data)
+ end
- else
- socket = Faye::WebSocket::Client.new("#{host}/runCase?case=#{n}&agent=#{CGI.escape agent}")
-
- socket.onmessage = lambda do |event|
- socket.send(event.data)
- end
-
- socket.on :close do |event|
- run_case.call(n + 1)
- end
- end
+ socket.on :close do |event|
+ progress.inc
+ run_case[n + 1]
end
+ end
- run_case.call(1)
+ socket.onclose = lambda do |event|
+ run_case[1]
end
}