Mercurial > prosody-modules
diff mod_minimix/README.markdown @ 2941:a57ed544fece
mod_minimix: Experiment in account-based MUC joins
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 22 Mar 2018 14:33:46 +0100 |
parents | |
children | 024075effb74 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_minimix/README.markdown Thu Mar 22 14:33:46 2018 +0100 @@ -0,0 +1,43 @@ +Account based MUC joining +========================= + +Normally when joing a MUC groupchat, it is each individual client that +joins. This means their presence in the group is tied to the session, +which can be short-lived or unstable, especially in the case of mobile +clients. + +This has a few problems. For one, for every message to the groupchat, a +copy is sent to each joined client. This means that at the account +level, each message would pass by once for each client that is joined, +making it difficult to archive these messages in the users personal +archive. + +A potentially better approach would be that the user account itself is +the entity that joins the groupchat. Since the account is an entity that +lives in the server itself, and the server tends to be online on a good +connection most of the time, this may improve the experience and +simplify some problems. + +This is one of the essential changes in the MIX architecture, which is +being designed to replace MUC. + +`mod_minimix` is an experiment meant to determine if things can be +improved without replacing the entire MUC standard. It works by +pretending to each client that nothing is different and that they are +joining MUCs directly, but behind the scenes, it arranges it such that +only the account itself joins each groupchat. Which sessions have joined +which groups are kept track of. Groupchat messages are then forked to +those sessions, similar to how normal chat messages work. + +## Known issues + +- You can never leave. +- You will never see anyone leave. + +## Unknown issues + +- Probably many. + +# Compatibility + +Briefly tested with Prosody trunk (as of this writing).