I am working on an application that sends regular updates of some status codes in XMPP messages using SMACK. It turns out that it is possible to end up in a situation where the client is (or appears to be) logged off, e.g. because of an earlier network failure, but the update messages can continue to flow though the server to other clients.
Steps to reproduce:
-
Client is logged in and sends regular update messages with application-specific status codes.
-
A short network failure causes the client to be logged off. In Wildfire admin the session is still shown as active.
-
The network is re-established and the client attempts to log on, but cannot do so while there is an active session because we have set Wildfire not to kick sessions when attempting to log in with identical resource name.
-
However, the update messages continue to flow.
-
After a while (which seems to be around 20 minutes) the session disappears in Wildfire admin, but update messages can continue to flow.
The end result is that the client appears to be offline, but its status messages continue coming, which looks inconsistent to other clients who subscribe to the client’'s presence information and to its update messages.
My question is firstly what is actually happening and secondly what would be the best remedy,i.e. to see to it that the client actually becomes logged in again and appears in Wildfire as being online.
I am using Wildfire 3.1.1 and SMACK 2.2.1.
Message was edited by: lhojding