MessagePack-RPCでドメインソケットを使う

サーバ

require 'msgpack/rpc'
require 'msgpack/rpc/transport/unix'

class MyHandler
  def add(x,y) return x+y end
end

listener = MessagePack::RPC::UNIXServerTransport.new('/var/tmp/hoge.sock')
server = MessagePack::RPC::Server.new
server.listen(listener, MyHandler.new)
server.run

クライアント

require 'msgpack/rpc'
require 'msgpack/rpc/transport/unix'
  
transport = MessagePack::RPC::UNIXTransport.new
client = MessagePack::RPC::Client.new(transport, '/var/tmp/hoge.sock')
result = client.call(:add, 1, 2)
p result #=> 3