I join a friend’s group chat, but when I leave the group chat, I will completely quit the group chat. Can I join the group chat like LINE or Whatsapp, even if I close the group chat window, I always on group chat and also received any messages?
This is supported by the new MUC Mix protocol, but Openfire doesn’t have support for this yet.
May be you can use Roster Group and using broadcast plugin you can send message always.
It all depend on the client you are using. In pure XMPP, you join a group by sending presence available message to the groupchat JID and you leave by sending presence unavailable to the same groupchat JID.
Most clients send these messages when the chat window is opened or closed. They don’t have to do this. The message could be sent at application startup and shutdown instead
I’m assuming that akong would want to still get notifications also when app is not running. Push notifications. Maybe this is possible with MIX. Or maybe with a modified client and using new push notifications plugin for Openfire.
As you pointed out, push notifications like stream management is for mobile devices that disconnect or are forced into an inactive state by the device O/S. If client is a web page always open with a web socket connection, there is no need for web push, the web app will receive normal XMPP <message> stanzas pushed from openfire to web client instantly.
If you are developing your own web client, you can achieve the WhatsApp user experience with XMPP, if are using an existing client like Converse, the users will leave a groupchat when the chat panel is closed.
MIX will improve XMPP groupchat because it will user publish/subscribe instead of presence for groupchat. See https://xmpp.org/extensions/xep-0369.html
The function I want is to create a group and add friends to this group. If the friends in the group are online, he will see the message, but if he is offline, he can see the message when he goes online. And will not leave the group unless he quits himself or the administrator kicks out.
Did you find any way of solving this. I am also trying to achieve the same functionality.