Not logged in. · Lost password · Register
Forum: agsXMPP RSS
ayyrk #1
Member since Jul 2007 · 92 posts
Group memberships: Members, Premium
Show profile · Link to this post
Subject: XMPP as a mobile device data transport

What do you think of using XMPP on mobile devices with limited data plans? We’re using AGSXMPP in a very successful WM6.1 application. The solution does fit, almost, within the data budget. XMPP will always be part of solution because the application has an embedded IM screen but we’re reconsidering using XMPP as the transport for our homegrown RPC mechanism; Maybe JSON calls over HTTP would provide some data usage savings.

AGSXMPP made it very easy to extend a chat application to include a homegrown RPC mechanism. The user can download data and view it offline – the SDK works great. The RPC code is based on the weather example in your documentation. Using the XMPP server for both chat and RPC simplified things like firewall and authentication.

The IM screen is used occasionally (a few times a week by most users) but the device is always (every half hour) attempting to make an XMPP connection in order to send an RPC request.  Where I’m thinking we are spending data unnecessarily is in the session setup, presence updates, and other background chatter XMPP seems to generate. Perhaps XMPP usage
could be isolated to the IM screen and the RPC calls could be made with a more efficient protocol.

In general I was wondering what you thought about this..

Thanks for all the great support over the years.

Alex #2
Member since Feb 2003 · 4296 posts · Location: Germany
Group memberships: Administrators, Members
Show profile · Link to this post
Hi Ayyrk,

if you don't need bidirectional asynchronous communication then other protocols will work fine as well.
The XSF is currently working hard on mobile optimizations for roster and presence, but I don't think you need them for your own non IM and presence related extensions.

XMPP compresses very well. With enabled compression, so I see no advantages for JSON. For you own extensions you could login a second connection with another resource, don't request the roster and don't send your own initial presence. This means you get no presence updates at all, but you can receive and send your custom IQs.

Another solution is to use privacy list to enable and disable presence updates from the client until the mobile optimizations are implemented in servers and the libraries,

Close Smaller – Larger + Reply to this post:
Verification code: VeriCode Please enter the word from the image into the text field below. (Type the letters only, lower case is okay.)
Smileys: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Special characters:
Forum: agsXMPP RSS