nats-rpc

“em install ‘nats-rpc’

usage

servant.rb

“by require “nats-rpc”

servant = NATS::RPC::Servant.new servant.serve! ‘testing’, queue: ‘test’ do |params, subject| puts “got params: #paramsparams.inspect in subject: #subject”

params[reverse].reverse end

client.rb

“by client = NATS::RPC::Client.new msg = “hello” data, payload = client.request ‘testing’, msg, timeout: 1, queue: ‘test’

puts data

=>

puts payload

=> olleh

advanced usage

servant.rb

“by require “nats-rpc”

cluster_opts = { servers: [nats://127.0.0.1:4222, nats://127.0.0.1:4223], dont_randomize_servers: true, reconnect_time_wait: 0.5, max_reconnect_attempts: 2 }

servant = NATS::RPC::Servant.new id: “a”, cluster_opts servant.serve! ‘testing’ do |params, subject| puts “got params: #paramsparams.inspect in subject: #subject”

params[reverse].reverse end

client requests show that they were served from servant “a”

=>

testing

see e2e/ and docker-compose.yml