[Standards] Using XMPP In A Mobile Environment

Christian Ulrich christian-ml at rechenwerk.net
Fri Feb 13 22:10:34 UTC 2015


On Fr, 2015-02-13 at 15:51 -0500, Brian Cully wrote:
> > On 13-Feb-2015, at 13:50, Ivan Vučica <ivan at vucica.net> wrote:
> > So the clients with the most enjoyable experience typically open a connection from the developer's servers, and deliver notifications over APNS. Should that continue to be true?
> 
> 	Speaking personally, absolutely not. I can’t use current iOS XMPP clients because I’m worried about the data security of this model, and at a previous job we specifically told people not to for the same reason. There are clients that do not connect to a developer’s server, but none that I’ve found except one (Bria w/ the XMPP IAP) will maintain a connection for more than a few minutes with the app in the background.
> 
> 	I believe you can use the VoIP class of background applications, as you’ve mentioned, to do this, but as yet I’ve not seen this become popular.
> 
> 	Another option which has occurred to me is using BOSH to handle this scenario; you can wake up the app w/i the BOSH timeout window without having it killed by the OS (assuming your window is larger than a few seconds). I’ve not really investigated this as I don’t think it’s an optimal solution in any way, merely something that might work if nothing else does.
> 
> -bjc
> 

The xep draft of Lance Stout [1] will not require users to connect to
third party servers. It enables the client's home server to send push
messages to the proprietary push server, e.g. APNS (same problem exists
on Ubuntu Touch [2]). The client can configure the server to not include
message contents and sender jids. So it can be used only as a wake-up
mechanism.

I am currently implementing the draft as an ejabberd module [3]. It's
not ready to be played with yet but I will come back and tell you when
it is.

The idea of deferring stanzas is very relevant to the draft (currently
push messages will be crafted when stream management stores a message
for later delivery or the user's mobile client is offline). I think
sending wakeup-messges via proprietary services in combination with
csi / a new filterig mechanism will make good user experience possible
on iOS / Ubuntu Touch.

[1]
https://github.com/legastero/customxeps/blob/gh-pages/extensions/push.md
[2]
https://docs.google.com/a/canonical.com/document/d/1ij8RtPsR_eYMW3mys8Gu1Y2CVFZpjXdMpdIjIGZ1SCA/edit?pli=1#heading=h.28drra4u9knx
[3] https://github.com/royneary/ejabberd/blob/master/src/mod_push.erl




More information about the Standards mailing list