Skip to content

zeromem88/ruby-zeromem-ws

Repository files navigation

Zeromem::Ws

This is implementation for movitto/rjr websocket Node for JSON-RPC to eliminate
performance degradation under heavy load (1000s queries per minute).

Current implementation has memory leak which cause CPU overhead accumulation.

Installation

gem 'zeromem-ws'

And then execute:

$ bundle

Or install it yourself as:

$ gem install zeromem-ws

Usage

require 'zeromem/ws'

server = Zeromem::Ws::WsHeavy.new :host => 'localhost', :port => 9789, :node_id => "server"
server.dispatcher.handle('method') { |i|
  puts "server: #{i}"
  "#{i}".upcase
}
server.listen

client = Zeromem::Ws::WsHeavy.new :node_id => "client", :timeout => 8000

0.upto(50000) { |i| 
  puts "#{i}" 
  puts client.invoke "ws://localhost:9789", "method", "Hello World" 
}

Bug reports and pull requests are welcome on GitHub at https://github.com/zeromem88/ruby-zeromem-ws.

License

The gem is available as open source under the terms of the MIT License.