IXWebSocket/test/compatibility/ruby/devnull_client.rb
Benjamin Sergeant e8e98e667d add ruby websocket bencharking code using
faye-websocket-ruby to receive messages as fast as possible
2020-08-18 13:45:53 -07:00

60 lines
1.5 KiB
Ruby

#
# $ ruby --version
# ruby 2.6.3p62 (2019-04-16 revision 67580) [universal.x86_64-darwin19]
#
# Install a gem locally by setting GEM_HOME
# https://stackoverflow.com/questions/486995/ruby-equivalent-of-virtualenv
# export GEM_HOME=$HOME/local/gems
# bundle install faye-websocket
#
# In a different terminal, start a push server:
# $ ws push_server -q
#
# $ ruby devnull_client.rb
# [:open]
# Connected to server
# messages received per second: 115926
# messages received per second: 119156
# messages received per second: 119156
# messages received per second: 119157
# messages received per second: 119156
# messages received per second: 119156
# messages received per second: 119157
# messages received per second: 119156
# messages received per second: 119156
# messages received per second: 119157
# messages received per second: 119156
# messages received per second: 119157
# messages received per second: 119156
# ^C[:close, 1006, ""]
#
require 'faye/websocket'
require 'eventmachine'
EM.run {
ws = Faye::WebSocket::Client.new('ws://127.0.0.1:8008')
counter = 0
EM.add_periodic_timer(1) do
print "messages received per second: #{counter}\n"
counter = 0 # reset counter
end
ws.on :open do |event|
p [:open]
print "Connected to server\n"
end
ws.on :message do |event|
# Uncomment the next line to validate that we receive something correct
# p [:message, event.data]
counter += 1
end
ws.on :close do |event|
p [:close, event.code, event.reason]
ws = nil
end
}