1
0
mirror of https://github.com/moparisthebest/xeps synced 2024-11-21 16:55:07 -05:00

Add a use case to entity versioning

Also:

  Minor typo and wording fixes
  Fix broken example XML
  More tabbing fixes
This commit is contained in:
Sam Whited 2015-08-27 16:22:55 -05:00 committed by Matthew A. Miller
parent d6b3f54e00
commit b3725e2cf9

View File

@ -50,12 +50,11 @@
This problem of "downloading the world" (downloading the entire roster This problem of "downloading the world" (downloading the entire roster
every time a session is initialized) was partially addressed by &xep0237; every time a session is initialized) was partially addressed by &xep0237;
which was later merged into &rfc6121; §2.6. While this solved the problem which was later merged into &rfc6121; §2.6. While this solved the problem
for the roster, it didn't account for other entities (eg. MUC for the roster, it didn't account for other entities (eg. disco items).
disco#items). Furthermore, roster versioning requires that the server Furthermore, roster versioning requires that the server maintain a great
maintain a great deal of state (multiple versions of the roster) which can deal of state (multiple versions of the roster) which can be difficult to
be difficult to implement in a large, distributed system. This XEP defines implement in a large, distributed system. This XEP defines a method by
a method by which entities other than the roster can be versioned and which entities other than the roster can be versioned and cached.
cached.
</p> </p>
</section1> </section1>
@ -115,6 +114,11 @@
client can fetch the list, and then poll for changes at a later date client can fetch the list, and then poll for changes at a later date
without re-requesting the entire list. without re-requesting the entire list.
</li> </li>
<li>
A client wishes to cache the features supported by servers of the
contacts in their roster since their disco items is not likely to
change often.
</li>
</ul> </ul>
</section2> </section2>
<section2 topic='Servers' anchor='server_use_cases'> <section2 topic='Servers' anchor='server_use_cases'>
@ -200,11 +204,11 @@
<!-- Server --> <!-- Server -->
<iq from='romeo@montague.lit' id='56' to='romeo@montague.lit/home' type='result> <iq from='romeo@montague.lit' id='56' to='romeo@montague.lit/home' type='result>
<query xmlns='jabber:iq:roster'> <query xmlns='jabber:iq:roster'>
<item subscription='both' jid='bill@shakespeare.lit' /> <item subscription='both' jid='bill@shakespeare.lit'>
<version xmlns='urn:xmpp:entityver:0'>9ZFZXVP9</version> <version xmlns='urn:xmpp:entityver:0'>9ZFZXVP9</version>
</item> </item>
</query> </query>
</iq> </iq>
]]></example> ]]></example>
<p> <p>
@ -218,7 +222,7 @@
<!-- Server --> <!-- Server -->
<iq from='romeo@montague.lit' id='ah382g678jka7' to='romeo@montague.lit/home' type='set'> <iq from='romeo@montague.lit' id='ah382g678jka7' to='romeo@montague.lit/home' type='set'>
<query xmlns='jabber:iq:roster' ver='ver34'> <query xmlns='jabber:iq:roster' ver='ver34'>
<item jid='tybalt@shakespeare.lit' subscription='remove> <item jid='tybalt@shakespeare.lit' subscription='remove'>
<version xmlns='urn:xmpp:entityver:0'>XWE4MUUP</version> <version xmlns='urn:xmpp:entityver:0'>XWE4MUUP</version>
</item> </item>
</query> </query>
@ -243,13 +247,13 @@
<!-- Server --> <!-- Server -->
<iq from='chat.shakespeare.lit' <iq from='chat.shakespeare.lit'
id='zb8q41fas6yn4' id='zb8q41fas6yn4'
to='hag66@shakespeare.lit/phone' to='hag66@shakespeare.lit/phone'
type='result'> type='result'>
<query xmlns='http://jabber.org/protocol/disco#items'> <query xmlns='http://jabber.org/protocol/disco#items'>
<item jid='coven@chat.shakespeare.lit' <item jid='coven@chat.shakespeare.lit'
name='A Dark Cave'> name='A Dark Cave'>
<version xmlns='urn:xmpp:entityver:0'>VIZSVF0D</version> <version xmlns='urn:xmpp:entityver:0'>VIZSVF0D</version>
</item> </item>
</query> </query>
</iq> </iq>
@ -346,7 +350,7 @@ anne@shakespeare.lit:VIZSVF0D,bill@shakespeare.lit:25P2A7H8
</p> </p>
<p> <p>
Version tokens SHOULD always be considered opaque to the client (eg. even Version tokens SHOULD always be considered opaque to the client (eg. even
if the version token is a derivable and consistant hash on the server side, if the version token is a derivable and consistent hash on the server side,
clients should not need to know how the server is calculating the token). clients should not need to know how the server is calculating the token).
</p> </p>
<p> <p>