tags:

views:

149

answers:

1

Hello,

I'm currently looking into XMPP and I would like to know if there is a way to create dynamic XMPP rosters. I want the contact list of any user be automatically generated by the server / component / plugin.

Can components access and modify rosters? I know that some servers (like OpenFire) use an external database to store these information but if I modify the database, I don't think the users will be notified in realtime.

Are some people already doing that or do you have an idea how to create it?

Thank you for your time.

A: 

In most XMPP servers this is called "shared roster groups".

I can't comment on Openfire in particular because I haven't used it for a long time, but I don't think I know of a server currently in which external roster changes are instantly transmitted to clients. Usually the client will simply pick up the new roster when it next logs in.

It would be possible to push the updates instantly to clients using what XMPP calls "roster pushes". This would require quite some work on the server though to identify what the changes are between what each client knows the roster to be, and what the new roster is, and then transmit just the changes.

If you really need this then a server plugin would probably be the way to go, or pester your server developers for the feature (I know that as a Prosody developer I've already been pestered, and this is something I'm planning to work on).

As for whether components can access users' rosters - this is dependent upon the server implementation and configuration.

MattJ
Thank you for your time and your good answer. I will see what I can do with a server plugin. Perhaps there is something in the protocol to ask specifics clients to refresh their roster.
Michaël Villar