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?