Delivering messages to multiple Client-Resources

Hamid Alimohammadi
Added about 4 years ago


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.

Replies (1)

Added by Wojciech Kapcia TigaseTeam about 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-all plugin and disabling amp plugin (it will also disable AMP functionality as well as offline storage, henceforth msgoffline should 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.