[Standards] XEP-0369 (MIX): Early stages of a clients connection
steve.kille at isode.com
Wed Jun 14 07:36:55 UTC 2017
> From <https://github.com/xsf/xeps/compare/
> > When a client adds MIX capability, additional information needs to be
> > provided by the server. To support this, a server MUST maintain
> > information about client MIX support status. When a server detects this
> > change it needs to update the roster which it MAY do incrementally or
> > by sending all of the roster.
> Could you elaborate how that works in the following scenario: Alice uses the
> client A, version 2.0 on her desktop and client B, version 1.0 on her phone. B
> 1.0 does not support MIX, but A 2.0 does. She is connected with both clients
> in parallel. She chats with both, but uses MIX only on her desktop with A 2.0.
> She has some MIXes bookmarked. Then she updates B on her phone to
> version 2.0, which finally supports MIX. Since B is mobile oriented, it uses
> roster versioning and asks the server for an incremental roster update when
> How exactly does the know that B did not support MIX on the last
> connection, but does now? I.e. how does the server recognise the "same"
> client on different connections?
You are right. The words I added "do not work".
> One thing I could imagine is for the server to include that information in the
> roster version. E.g. if it usually versions the roster with incrementing
> numbers, it could add "+mix" to the stringified number if MIX entries are
> included. This would allow it to recognise that the client has or has not seen a
> roster version with MIX and can create the diff accordingly.
That feels very ugly.
> It took me a while to come up with this idea, so maybe it makes sense to add
> that to the wording. Also I have never written a server-side roster
> implementation, so I’m not sure if this is even a realistic way of doing things.
I am thinking that Kev's idea of adding "send MIX format" option to roster request is the best way to go.
Server will need to maintain things so that it can respond to both MIX and non-MIX requests.
If a client changes its setting, it needs to clear its cache and fetch the full roster.
More information about the Standards