Annotate

mod_minimix/README.markdown @ 3852:66f96b98d219

mod_rest: Allow returning an array of JID strings as disco#items
author Kim Alvefur <zash@zash.se>
date Sat, 25 Jan 2020 00:30:14 +0100
parent 3121:92b4a1d72d73
child 4540:3aab4e3ab06f
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.
3121
92b4a1d72d73 mod_minimix/README: Doesn't handle incoming kicks yet
Kim Alvefur <zash@zash.se>
parents: 2943
diff changeset
37 - Being kicked is not handled.
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
38
2943
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
39 Unknown issues
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
40 --------------
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
41
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
42 - Probably many.
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
43
2943
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
44 Compatibility
7e5d8d5bc326 mod_minimix/README: Normalize markdown syntax
Kim Alvefur <zash@zash.se>
parents: 2942
diff changeset
45 =============
2941
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
46
a57ed544fece mod_minimix: Experiment in account-based MUC joins
Kim Alvefur <zash@zash.se>
parents:
diff changeset
47 Briefly tested with Prosody trunk (as of this writing).