strophejs-plugin-mam v0.0.3
strophe.mam.js
Plugin for strophe.js to provide Message Archiving Management (XEP-0313).
This plugin requires the Strophe.RSM plugin to be loaded as well.
Install
npm install strophejs-plugin-mamUsage
Querying an archive
connection.mam.query(where, parameters)
where is the JID hosting the archive. In most cases you will want to
set this to your own bare JID in order query your personal archive, but
it could also be a MUC room, an archiving component or a bot.
parameters is an object containing parameters for the query. This can
have properties from two and a half categories:
Handlers: onMessage which gets called for each message received,
and onComplete which is called when the query is completed.
Filtering: Half of this is the parameters defined by MAM; with,
start or end, which allow you to filter the results on who the
conversation was with, and the time range.
Additionally, parameters from Result Set Management can be
supplied. You would probably be most interested in the after and
before properties, which allow you to do pagination of the result set,
and the max property, which allow you to limit the number of items in
each page. Note: Better RSM integration is on the TODO, you currently
have to pick out the last or first items yourself and pass
those as after or before respectively.
Example
To query, for example, your personal archive for conversations with
juliet@capulet.com you could do:
connection.mam.query("you@example.com", {
"with": "juliet@capulet.com",
onMessage: function(message) {
console.log("Message from ", $(message).find("forwarded message").attr("from"),
": ", $(message).find("forwarded message body").text());
return true;
},
onComplete: function(response) {
console.log("Got all the messages");
}
});