我应该为即时通讯软件使用低级还是高级协议?

问题描述:

我目前正在规划一个Android的即时信息/ 实时聊,但我不能肯定,如果我要使用一个低水平(如TCP )或高级别协议(例如,XMPP)。我应该为即时通讯软件使用低级还是高级协议?

非常感谢。

+1

许多优秀的问题根据专家的经验产生了一定程度的意见,但对这个问题的回答往往几乎完全基于意见,而不是事实,参考或具体的专业知识。 –

仅凭TCP,您只需获得一个空的裸露网络连接,您将不得不传输数据。有很多工作要做。

使用XMPP,您可以依靠完整的协议(连接,数据格式,工作流程)。您还可以从现成的成熟软件实施中受益,例如MongooseIMTigase用于服务器端,以及客户端库,例如iOS上的XMPPframework和Android上的Smack

您也可以使用AMQP或MQTT协议或某种与移动推送通知(APNS和/或GCM)结合使用的REST API。

还有RingMatrix你可以看看。

+0

您可能也有兴趣查看MTProto实现(电报协议):https://core.telegram.org/mtproto。 – mydaemon

+0

我也听说过GCM。这可以成为XMPP的替代品吗? – rkr8