Groovy Jabber-RPC


allows you to make XML-RPC calls using the Jabber protocol

. Groovy has a Jabber-RPC implementation which allows you to create a local Jabber-RPC server and to make calls on remote Jabber-RPC servers. Jabber servers are widely available and very easy to set up and run. The Google GTalk service uses Jabber and the Groovy Jabber-RPC package works over GTalk.
We use the excellent


Jabber library from Jive Software to handle the protocol details.

The Server

It's really easy to set up a server which provides a set of remotely callable functions.

  1. Create a server object
    import org.jivesoftware.smack.XMPPConnection
        def server = new JabberRPCServer()

  2. Add some methods
    sever.echo = {return it}  // the closure is now named "echo" and is remotely callable

  3. Start the server
    def serverConnection = new XMPPConnection("", 5222, "")
        serverConnection.login("myServerId", "myServerPassword")   // logging in as

  4. You're done!

The Client

It's pretty easy to make the remote calls too

  1. Create a proxy object to represent the remote server
    def clientConnection = new XMPPConnection("", 5222, "")
        clientConnection.login("myClientId", "myClientPassword")   // logging in as myClientId@example.orgm
        def serverProxy = new JabberRPCServerProxy(clientConnection, "myServerId")

  2. Call the remote method via the proxy
    println severProxy.echo("Hello World!")

  3. As long as and are buddies then the call will be made and the result returned