M
Massimiliano Mirra - bard
URL:
http://jabber-rpc.rubyforge.org
Changes:
* Rudimentary handling of transport-level errors in remote calls.
* Allow selection of XML parser in client.
* Debug option and introspection for sample agent.
* Smarter processing of method response in Client#call2.
* Bugfix: test agent human input processor expected message instead of message body.
* Now only message body is passed to human input processor.
* Bugfix: results of human input processor were not interpreted correctly.
* Fixed sample TodoAgent to work with new BasicServer.
* BasicAgent is now BasicServer and inherites from XMLRPC::Server.
Jabber::RPC::BasicServer gets from XMLRPC::Server all the goodies such
as introspection, interfaces with explicit signatures, default
handlers and proc handlers. It also allows (potentially) exposure of
multiple agents at a single JID, though it's probably not a good thing
in the Jabber case (see README).
Description:
Jabber-RPC lets objects talk over the network transparently.
Unlike CORBA, objects can reside anywhere on the Internet (safely).
Unlike XMLRPC and SOAP, they can reside in a LAN behind a firewall,
communication is asynchronous (both parties can initiate
conversation), and you don't need a web server.
Small example (assumes jabberd installed on local machine):
---- agent.rb ----
require "jabber/rpc"
class TestAgent
INTERFACE = XMLRPC::interface("") {
meth "boolean alive?()"
}
def alive?(from)
true
end
end
agent = TestAgent.new
server = Jabber::RPC::BasicServer.new("bot@localhost/TestAgent", "password")
server.add_handler(TestAgent::INTERFACE, agent)
server.serve
Thread.stop
---- irb ----
require "jabber/rpc"
session = Jabber::Session.bind("user@localhost/Ruby", "password")
agent = Jabber::RPC::Client.new(session, "bot@localhost/TestAgent").proxy3
agent.alive? #=> true
http://jabber-rpc.rubyforge.org
Changes:
* Rudimentary handling of transport-level errors in remote calls.
* Allow selection of XML parser in client.
* Debug option and introspection for sample agent.
* Smarter processing of method response in Client#call2.
* Bugfix: test agent human input processor expected message instead of message body.
* Now only message body is passed to human input processor.
* Bugfix: results of human input processor were not interpreted correctly.
* Fixed sample TodoAgent to work with new BasicServer.
* BasicAgent is now BasicServer and inherites from XMLRPC::Server.
Jabber::RPC::BasicServer gets from XMLRPC::Server all the goodies such
as introspection, interfaces with explicit signatures, default
handlers and proc handlers. It also allows (potentially) exposure of
multiple agents at a single JID, though it's probably not a good thing
in the Jabber case (see README).
Description:
Jabber-RPC lets objects talk over the network transparently.
Unlike CORBA, objects can reside anywhere on the Internet (safely).
Unlike XMLRPC and SOAP, they can reside in a LAN behind a firewall,
communication is asynchronous (both parties can initiate
conversation), and you don't need a web server.
Small example (assumes jabberd installed on local machine):
---- agent.rb ----
require "jabber/rpc"
class TestAgent
INTERFACE = XMLRPC::interface("") {
meth "boolean alive?()"
}
def alive?(from)
true
end
end
agent = TestAgent.new
server = Jabber::RPC::BasicServer.new("bot@localhost/TestAgent", "password")
server.add_handler(TestAgent::INTERFACE, agent)
server.serve
Thread.stop
---- irb ----
require "jabber/rpc"
session = Jabber::Session.bind("user@localhost/Ruby", "password")
agent = Jabber::RPC::Client.new(session, "bot@localhost/TestAgent").proxy3
agent.alive? #=> true