LibraryLink ToToggle FramesPrintFeedback

Chapter 58. XMPP

The xmpp: component implements an XMPP (Jabber) transport.

xmpp://[login@]hostname[:port][/participant][?Options]

The component supports both room based and private person-person conversations. The component supports both producer and consumer (you can get messages from xmpp or send messages to xmpp). Consumer mode supports rooms starting from camel-1.5.0.

Name Description
room If room is specified then component will connect to MUC (Multi User Chat). Usually domain name for MUC is different from login domain. For example if you are [email protected] and want to join "krypton" room then room url is [email protected]. Note "conference" part.
user User name (without server name). If not specified then anonymous login attempt will be performed.
password Password
resource XMPP resource. The default is "Camel"
createAccount If "true" then an attempt to create an account will be made. Default is false
participant JID (Jabber ID) of person to receive messages. "room" parameter has precedence over "participant".
nickname Use nick when joining room. If room is specified and nickname is not then "user" will be used for nick
serviceName FUSE Mediation Router 1.6/2.0 The name of the service you are connecting to. For Google Talk, this would be gmail.com

User "superman" to join room krypton at jabber server with password "secret".

xmpp://[email protected]/[email protected]&password=secret

User "superman" to send messages to joker

xmpp://[email protected]/[email protected]?password=secret

Routing example in Java

from("timer://kickoff?period=10000").
setBody(constant("I will win!\n Your Superman.")).
to("xmpp://[email protected]/[email protected]?password=secret");

Consumer configuration. Will write all messages from Joker into a queue "evil.talk".

from("xmpp://[email protected]/[email protected]?password=secret").
to("activemq:evil.talk");

Consumer configuration listening to a room messages (supported from camel-1.5.0)

from("xmpp://[email protected]/?password=secret&[email protected]").
to("activemq:krypton.talk");

Room in short notation (no domain part; for camel-1.5.0+)

from("xmpp://[email protected]/?password=secret&room=krypton").
to("activemq:krypton.talk");

When connecting to the Google Chat service, you'll need to specify the serviceName as well as your credentials (as of FUSE Mediation Router 1.6/2.0)

// send a message from [email protected] to [email protected]
from("direct:start").
    to("xmpp://talk.google.com:5222/[email protected]?serviceName=gmail.com&user=fromuser&password=secret").
    to("mock:result");