diff --git a/test/compatibility/ruby/README.md b/test/compatibility/ruby/README.md new file mode 100644 index 00000000..bc0ce6a7 --- /dev/null +++ b/test/compatibility/ruby/README.md @@ -0,0 +1,6 @@ +``` +export GEM_HOME=$HOME/local/gems +bundle install faye-websocket +``` + +https://stackoverflow.com/questions/486995/ruby-equivalent-of-virtualenv diff --git a/test/compatibility/ruby/devnull_client.rb b/test/compatibility/ruby/devnull_client.rb new file mode 100644 index 00000000..1037fe34 --- /dev/null +++ b/test/compatibility/ruby/devnull_client.rb @@ -0,0 +1,59 @@ +# +# $ 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 +}