Software /
code /
prosody-modules
Comparison
mod_minimix/README.md @ 6211:750d64c47ec6 draft default tip
Merge
author | Trần H. Trung <xmpp:trần.h.trung@trung.fun> |
---|---|
date | Tue, 18 Mar 2025 00:31:36 +0700 |
parent | 6003:fe081789f7b5 |
comparison
equal
deleted
inserted
replaced
6210:24316a399978 | 6211:750d64c47ec6 |
---|---|
1 # Account based MUC joining | |
2 | |
3 Normally when joining a MUC groupchat, it is each individual client that | |
4 joins. This means their presence in the group is tied to the session, | |
5 which can be short-lived or unstable, especially in the case of mobile | |
6 clients. | |
7 | |
8 This has a few problems. For one, for every message to the groupchat, a | |
9 copy is sent to each joined client. This means that at the account | |
10 level, each message would pass by once for each client that is joined, | |
11 making it difficult to archive these messages in the users personal | |
12 archive. | |
13 | |
14 A potentially better approach would be that the user account itself is | |
15 the entity that joins the groupchat. Since the account is an entity that | |
16 lives in the server itself, and the server tends to be online on a good | |
17 connection most of the time, this may improve the experience and | |
18 simplify some problems. | |
19 | |
20 This is one of the essential changes in the MIX architecture, which is | |
21 being designed to replace MUC. | |
22 | |
23 `mod_minimix` is an experiment meant to determine if things can be | |
24 improved without replacing the entire MUC standard. It works by | |
25 pretending to each client that nothing is different and that they are | |
26 joining MUCs directly, but behind the scenes, it arranges it such that | |
27 only the account itself joins each groupchat. Which sessions have joined | |
28 which groups are kept track of. Groupchat messages are then forked to | |
29 those sessions, similar to how normal chat messages work. | |
30 | |
31 ## Known issues | |
32 | |
33 - You can never leave. | |
34 - You will never see anyone leave. | |
35 - Being kicked is not handled. | |
36 | |
37 ## Unknown issues | |
38 | |
39 - Probably many. | |
40 | |
41 ## TODO | |
42 | |
43 - Integrate with bookmarks | |
44 - tracking outgoing presence | |
45 - leaving rooms | |
46 - nickname management | |
47 - bookmark sync | |
48 | |
49 # Compatibility | |
50 | |
51 Briefly tested with Prosody trunk (as of this writing). |