Ever thought it would be nice to call objects located anywhere in the
world, without bothering with static IPs, DNS, Apache, CGI, NAT, PAT,
gateways, authentication, and so on?
Jabber-RPC lets you do this. On the callee side you have:
require "jabber/rpc"
class TestAgent < Jabber::RPC::BasicAgent
def exposed_commands
["alive?"]
end
def alive?
true
end
end
agent = TestAgent.new("bot / jabberserver.com/TestAgent", "bot")
agent.connect
On caller, you have:
session = Jabber::Session.bind("user@jabberserver/Ruby", "user")
remote_agent = Jabber::RPC::Client.new(session, "bot / jabberserver.com/TestAgent").proxy3
remote_agent.alive? #=> true
And with a bit more code, remote users can talk to the object through
an IM client, too.
Find it at: http://jabber-rpc.rubyforge.org
Massimiliano