XMPP instead of HTTP

Hey guys.

My friend and I, we are working on iPhone application. This
application uses XMPP protocol to provide chat functionality. Right
now we are designing architecture for the application.

So my friend is working on iPhone side, and I am ruby on rails guy.

My friend suggested, that we wrap every call, that is usually served
via HTTP into XMPP. So, user registration, users search, profile
editing, photo uploading, everything goes via XMPP. No HTTP at all.

My friend wants to use XMPP, because he says, that it's much easier to
implement XMPP on client-side rather HTTP. As for me, this is
bullshit, but we've got a product owner, who have been working with my
friend for a long time and he trusts him.

So what I'm trying to do is to convince my friend and product owner
that using XMPP for what HTTP can work find — is totally not the best
idea.

I feel, that if we implement everything on XMPP, we will have a pain
in an ass till the end of lives. But how do I prove it?

P.S. I'm not against chat over XMPP, I am against users search, photo
uploading, rankings, nearby search and various other restful requests.

Please, leave response. Any help appreciated.

golubevpavel wrote in post #970976:

My friend suggested, that we wrap every call, that is usually served
via HTTP into XMPP. So, user registration, users search, profile
editing, photo uploading, everything goes via XMPP. No HTTP at all.

Don't get me wrong here, I think XMPP is a very cool and interesting
protocol, but using it to completely replace HTTP in this context verges
on insanity.

My friend wants to use XMPP, because he says, that it's much easier to
implement XMPP on client-side rather HTTP. As for me, this is
bullshit, but we've got a product owner, who have been working with my
friend for a long time and he trusts him.

You said it. Cocoa & Cocoa Touch (iOS) has excellent support of for the
HTTP protocol. The implementation is flexible, powerful and really easy
to implement for anyone familiar with Cocoa development. I've done this
myself and trust me making HTTP connections to web servers is really
easy.

See this link for details:
http://developer.apple.com/library/ios/#documentation/Cocoa/Conceptual/URLLoadingSystem/URLLoadingSystem.html

So what I'm trying to do is to convince my friend and product owner
that using XMPP for what HTTP can work find is totally not the best
idea.

Good luck with that.

I feel, that if we implement everything on XMPP, we will have a pain
in an ass till the end of lives. But how do I prove it?

If you're building a Rails app for the server I would guess your life
would certainly be more painful. Rails is architected around HTTP not
XMPP.

P.S. I'm not against chat over XMPP, I am against users search, photo
uploading, rankings, nearby search and various other restful requests.

I agree I also thing XMPP is inappropriate for your use case. There are
many use cases where XMPP make a lot of sense, but I just don't see any
advantage of using it here.

Are there any other opinions?