annotate mod_minimix/README.markdown @ 3068:380f92276e57

mod_pubsub_stats: Make the node used configurable
author Kim Alvefur <zash@zash.se>
date Tue, 29 May 2018 05:34:05 +0200
parents 7e5d8d5bc326
children 92b4a1d72d73
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
1 Account based MUC joining
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
2 =========================
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
3
2942
024075effb74 mod_minimix/README: Fix typo (thanks porrier)
Kim Alvefur <zash@zash.se>
parents: 2941
diff changeset
4 Normally when joining a MUC groupchat, it is each individual client that
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
5 joins. This means their presence in the group is tied to the session,
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
6 which can be short-lived or unstable, especially in the case of mobile
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
7 clients.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
8
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
9 This has a few problems. For one, for every message to the groupchat, a
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
10 copy is sent to each joined client. This means that at the account
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
11 level, each message would pass by once for each client that is joined,
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
12 making it difficult to archive these messages in the users personal
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
13 archive.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
14
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
15 A potentially better approach would be that the user account itself is
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
16 the entity that joins the groupchat. Since the account is an entity that
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
17 lives in the server itself, and the server tends to be online on a good
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
18 connection most of the time, this may improve the experience and
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
19 simplify some problems.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
20
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
21 This is one of the essential changes in the MIX architecture, which is
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
22 being designed to replace MUC.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
23
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
24 `mod_minimix` is an experiment meant to determine if things can be
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
25 improved without replacing the entire MUC standard. It works by
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
26 pretending to each client that nothing is different and that they are
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
27 joining MUCs directly, but behind the scenes, it arranges it such that
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
28 only the account itself joins each groupchat. Which sessions have joined
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
29 which groups are kept track of. Groupchat messages are then forked to
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
30 those sessions, similar to how normal chat messages work.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
31
2943
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
32 Known issues
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
33 ------------
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
34
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
35 - You can never leave.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
36 - You will never see anyone leave.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
37
2943
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
38 Unknown issues
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
39 --------------
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
40
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41 - Probably many.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42
2943
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
43 Compatibility
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
44 =============
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
45
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46 Briefly tested with Prosody trunk (as of this writing).