We are integrating our 3rd party CRM software to Finesse using Java. When an agent logs in to our application we will log the agent in to Finesse (Rest API call) and create a connection to the Notification Service (XMPP).
When they log out correctly from a session of our application we log them out of Finesse by making the appropriate logout REST API call and by cleaning up the XMPP connection.
However in practice there will be times when agents will not log out of our application properly and they will just close the application window. In these scenarios our application will not perform the logout and cleanup of the notification service connection until our application's user session expires (e.g. This can be set to a number of minutes).
If an agent starts a new session of our application before that timeout then we will attempt to log them back in to Finesse again and create a 2nd XMPP connection. From what I understand the 2nd REST login request will be permitted even although they are already logged in - I think that's fine. My concern is the 2nd XMPP connection we will create - I assume this will suffer from the fact we already have a connection running for that user and the event delivery is therefore not going to be reliable and will cause issues.
Is this a limitation/problem of Finesse? Does the Cisco Finesse desktop suffer from this problem? I assume an agent could close the Finesse desktop without logging out correctly and then open a new browser window and attempt to login again right away. If this is the case does the Finesse desktop deal with this scenario and how?