Good choice for an IM app

怎甘沉沦 提交于 2019-12-13 10:40:29

问题


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



来源:https://stackoverflow.com/questions/27887873/good-choice-for-an-im-app

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!