S2s connection


I have the following scenario for a student project, please help me:

I have two presence servers: PA in company A and PB in company B. The server PA should periodically (say every 60 seconds) poll the status of all the users (say many thousands) on the presence server PB. I have installed Openfire both for PA and PB, and both are running very well.

On PA I can see the status of all the users of PA, the same for PB.

But how can I now, let PA poll periodically the status of the users on PB (and show them). Is there any component or library? Or should I write a new component for that? What is the best way to do that.

Thank you for your answers.



You could use the Presence Service Plugin, which exposes presence information over HTTP. By writing an extension to Openfire, you could extract the information from this plugin and display it through your admin console. You could then write into your extension choices on intervals for polling the other server. You will of-course need to have a field where the address of the other server is setup and maybe extend it to include multiple servers


I have the following scenario and I am searching for a solution.

I have many business partners “B”, “C” and “D”, each of them has his own presence server “PB”, “PC” and “PD”.

I need in my organisation “A” a presence service “PA”, who “mirros” the actual status of all the users on PB, PC and PD, to whom I subscribed.

I know, that I could implement my presence service PA as a client, who subscribes to all the users on PB, PC and PD. What I am asking for: is there an other solution?

  1. Can I be on the one hand a client of the servers PB, PC, PD, and on the other hand a “server” for other applications/clients/servers.

  2. Can I say to the other servers PB, PC and PD “hey, I am a presence server (and not a client), would you please send me each change of the status of my users, to whom I subscribed”.

  3. Can I make benefit of the s2s protocol in my scenario?

You can say: What I want to have, is a local presence service in my organisation, who localy mirros many others presence servers of other partners. How would be your solution?

Thank you for your help


In that case your best solution might be to use the PubSub mechansim (JEP-0060 http://www.igniterealtime.org/support/articles/pubsub.jsp) This mechanism allows a client to subscribe to changing events, i.e: the Forum watches on igniterealtime. You will however have to write your own plugin to utilise this feature as one doesn’t exist for what you want to do. The XMPP stanza is fairly straight forward to use.