Delivering messages to multiple Client-Resources
Please consider a scenario in which user1 has two Resources, a mobile device and a home PC.
User1 and user2 are online; When user2 sends a message to user1, the server would deliver the message to just one resource or would deliver to both resources of user1's devices, depending on whether Full-JID or Bare-JID is used.
The above scenario is working fine in my server.
My question: Is there any option that we can deliver the message from user2 to both user1's resources, even if one of his resources is offline? I mean something similar to Viber that users can see their messages even if one resource had been offline for a while.
Added by Wojciech Kapcia almost 4 years ago
There are two different concepts to take into consideration here:
you can enforce sending messages to all connected resources despite using BareJID/FullJID by enabling
message-allplugin and disabling
ampplugin (it will also disable AMP functionality as well as offline storage, henceforth
msgofflineshould be enabled);
above solution won't synchronize messages send from the user however; if you require full message synchronization you should consider using XEP-0280: Message Carbons extension which is supported by Tigase;
finally, answering your question - in case you want to provide full access to all messages from all resources you should consider using Message Archiving and retrieve historical messages from offline resources upon reconnecting.