Implementing a Dynamic Roster

Submitted by Anonymous on Mon, 2008-07-14 12:37.

I've been tinkering with the Tigase 3.3.2 source trying to get an embeddable replacement for OpenFire (we use OpenFire as part of our customer helpdesk).

I've written an user repository class and an authentication class which allows support staff and customers to login using our smack-based client (I had to use smack from SVN head (>= 10566) to get authentication working).

There is no local storage of users & user info - everything is cached in memory and all accounts are temporary and created as necessary based on proper authentication.

I need to implement dynamic rosters. I took a stab at my own dynamic rosters by having my user repository create & maintain all groups and push this info to the user as the "private" roster. The group creation and maintenance code is working fine and everything is current *on the server*.

My problem is with roster updates. They don't happen and I'm not sure how to trigger them. When User A logs in he/she gets the current group/roster info. User B logs in after User A logs in. User A will get the presence packet from User B, but will not have User B in his/her roster.

Should I subclass DynamicRosterIfc? Will that help me with client roster updates or will that not change anything on the client side? Is there a sample implementation of DynamicRosterIfc? That interface is not documented and there does not appear to be an implementation in the 3.3.2 server sources.

Thanks,
James

Trackback URL for this post:

http://www.tigase.org/pl/trackback/1431
kobit's picture
Submitted by kobit on Fri, 2008-08-01 06:54.

Please excuse me delayed answer but I was away on holiday and at the same time we had a problem with our main server.

This sounds to me like application for dynamic roster and anonymous logins. Helpdesk people have persistent accounts and customers don't have accounts at all.

Helpdesk people login normally and customers login using anonymous method and they have temporary virtual account.

This is all nicely working together in current Tigase version. The example of that scenario is running on the Tigase website using Minichat client. And also current version has sample code for the DynamicRosterIfc as well as good inline (JavaDoc) documentation for this interface. Please have a look at current SVN sources for examples and documented files.

Tigase version 3.2.x had the first implementation of dynamic roster which was working fine for our needs but it has been extended in version 4.x.

If you are still interested in this please let me know and I would be happy assist you with this.


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.