I am working on cluster support of openfire. My cluster implementation is %25 working. Users can get presences, messages from other users on different cluster nodes. But i need your ideas about the way of my implementation.
In my RemoteSessionLocatorImp (that implements RemoteSessionLocator), when getClientSession method is called, i invoke a synchronousClusterTask in the following way;
return (ClientSession) CacheFactory.doSynchronousClusterTask( new GetClientSessionTask(address) , nodeID);
GetClientSessionTask is a wrapper to get the remote client session of the user. As you know ClientSession is not serializable.Is this the correct way of getting the remote client session?
My other question is, my RemotePacketRouterImp (that implements RemotePacketRouter), routes packets over a s2s connection. I have modified the codes. Is there any other implementation for transfering packets to cluster nodes?
Anyone that worked on clustering, i will be glad to hear your ideas (especially Gaston Dombiak )