Good choice for an IM app

2019-09-24 12:22发布

问题:

I'm going to develop a WhatsApp like IM app. I'm looking for something that gives me the most pre-cooked solution. I've used sockets before in a Webapp for similar purposes and have heard that XMPP(it's implementations) is widely used for this sort of work. Considering the choices at hand I understand XMPP will be the way to go but I have the following questions:

  1. Why Should I use XMPP (How much will I have pre-cooked?)
  2. Why Can't I use sockets? though they seem to be very easy to work with and a quick solution
  3. I've heard about http://quickblox.com/ and I think it's the fastest solution. Why and why shouldn't I use it?
  4. Any other thing I'm missing?

回答1:

To answer Q's 1, 3 and 4:

The XMPP Protocol itself covers most of what you will need from a modern-day IM app (you stated WhatsApp - they used it, at least at the starting phase, same goes for the Facebook messaging app). I'm guessing that's what you're aiming at.

There are other well known options like IRC, - again, it depends on what you need, I suggest reading up about it: XMPP.

By "develop an IM app", I'm assuming you mean starting with mobile, in that case there's a well documented library for Android called Asmack, it will help you in writing your own client (again, read up...)

Continue by looking at which Server implementation of the XMPP protocol suits you best, among the common implementations out there are Ejabberd and OpenFire, Have a look at this: XMPP Server Comparison (the "pre-cooked" ref)

Some things to consider as an independent developer:

  1. Open-Source.
  2. Community Support and Documentation.

To try and answer Q 2:

The "pre-cooked" servers, combined with the client libraries will probably cover the sockets for you.

Edited:

You should probably also give this SO Thread a look: Android and XMPP: Currently available solutions