On Mon, Oct 28, 2013 at 4:03 PM, Peter Saint-Andre <[email protected]>wrote:
> How do we define "important"? There's the challenge. :-) > I think we had this discussion in Portland, but perhaps it was after you'd left, while Lance, Matt and I were chatting about mobile push and all sorts of things. Basically, the existing-but-non-XSF google:queue specification says more or less what Spencer wants - "Don't send me stuff. Update me when I ask". That, XEP-0198, the mobile push stuff that Lance was sketching out (much better than I would have), and Matt's hinting stuff gets us this: Dramatis Personæ: [email protected] - A Wandering Minstrel. [email protected] - His contact. So [email protected]/mobile connects to wandering.example. It activates the queue (I'd call it buffer, but hey) extension, and so, when the phone is switched away from the app, it buffers the connection such that only "important" stuff gets through. It also activates the per-connection aspect of the mobile push thing. If [email protected] sends our Wandering Minstrel a message, that's assumed to be important, unless it's otherwise hinted, and the following occurs: 1) If the session is online, the buffer is flushed, and this message sent through, along with an <a/> request. 2) If the ack times out, or the session was not online, the session is assumed to be disconnected, and the mobile is sent a push (for that connection, ideally - I may be wrong in us needing this). In this case, the mobile wakes up, and either returns an <r/>, or else reconnects the session via XEP-0198. So what this needs is changes to a handful of specs: a) We need to write a new replacement for google:queue, which does everything that we actually need. This could be done as a replacement to SIFT (which I always thought was over complexificated for what we actually need) or as additions to it. b) Matt's stanza hints need to include ways to indicate that a message is not worth considering as a reason to flush the buffer, and/or wake the mobile out-of-band. It also probably needs ways to insist that it is. c) Lance's mobile push (which should provide essentially an XMPP API for servers to talk to mobile developers' push services). Given those three items (and (c) is by far the biggest), we've got mobile covered, I think. Dave.
