XEP-0313: add implementation considerations

Currently this only explains the difference between the before/after
parameters of RSM and the before-id/after-id parameters of mam#extended.

Signed-off-by: Sam Whited <sam@samwhited.com>
Sam Whited 2 years ago
parent 08baaba5b2
commit a93eda8dc2

@ -29,6 +29,14 @@
<p>Add implementation note about before/after and before-id/after-id</p>
@ -403,7 +411,11 @@
<section3 topic='Limiting results by id' anchor='query-limit-id'>
<p>If the client has already seen some messages, it may choose to restrict its query to
before and/or after messages it already knows about. This may be done through the 'before-id'
and 'after-id' fields.</p>
and 'after-id' fields.
In some cases 'before-id' and 'after-id' are the same as using RSM's
'before' and 'after' parameters. For more information, see the
<link url='#impl'>Implementation Considerations</link> section.
<example caption='Querying the archive for all messages after a certain message'><![CDATA[
<iq type='set' id='juliet1'>
<query xmlns='urn:xmpp:mam:2'>
@ -886,6 +898,29 @@
<section1 topic='Implementation Considerations' anchor='impl'>
Queries in the 'urn:xmpp:mam:2' namespace can be limited using the RSM
'before' and 'after' parameters.
Normally these are opaque identifiers that are not known until the results
of the first query are returned at which point they can be used to fetch
subsequent pages.
However, MAM specifically defines them as being equal to the archive ID,
meaning that an acceptable value can be known and used in the initial query.
This makes them equivalent to 'before-id' and 'after-id' defined in the
'urn:xmpp:mam:2#extended' namespace except for the following differences:
The behavior of using RSM's 'before' and 'after' together is undefined,
And using 'before' implies paging backwards through the result set while
using 'before-id' does not.
<section1 topic='XMPP Registrar Considerations' anchor='registrar'>
<section2 topic='Protocol Namespaces' anchor='registrar-ns'>
<p>This specification defines the following XML namespace:</p>