51学通信论坛2017新版

标题: 如何开发一款类似微信、陌陌这样的移动即时通信应用? [打印本页]

作者: admin    时间: 2017-9-16 17:26
标题: 如何开发一款类似微信、陌陌这样的移动即时通信应用?
移动互联网最重要的应用类型是什么?一定是社交。这也是人们用手机最核心的需求。社交应用也分为好几种,比如像微信、陌陌这种即时通信应用,属于强社交应用,其信息交互是双向的;像微博、朋友圈这种Feeds流应用,属于弱社交应用,信息交互是单向的。这篇文章简单讲一下移动端的即时通信应用(Instant Message)的开发原理。
[attach]329[/attach]


QQ是PC端最常用的即时通信工具,PC客户端之间通信一般是直连为主、转发为辅,服务器起到的作用主要是传递系统消息,并帮助客户端之间建立直连通路,只有当对方不在线时,才会把离线消息传给服务器,再由服务器等好友上线转发给他。
移动端的IM应用与PC端有所不同,由于在移动客户端之间建立直连通路难度较大,所以移动客户端之间通信一般采用的都是服务器转发的方式,客户端先把消息传给服务器,再由服务器转发给对方用户。
最常用的移动IM通信协议是XMPP(Extensible Messageing and Presence Protocol)协议。XMPP是一种基于XML的协议,具有超强的可扩展性。 经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求。
XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。 XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分: 核心的XML流传输协议, 基于XML流传输的即时通讯扩展应用。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。

[attach]330[/attach]

XMPP中定义了三个角色,客户端(XMPP Client),服务器(XMPP Server),网关(Gateway)。通信能够在这三者的任意两个之间双向发生。

所有从一个Client到另一个Client的Jabber消息和数据都要通过XMPP Server。
XMPP协议是基于XML文本的,对于一般的移动IM应用就够用了,像环信、融云这些提供第三方IM服务的平台,都是使用XMPP协议。但对于用户量特别大的IM应用,比如微信,基于XML文本的XMPP协议就显得效率太低。微信采用自定义二进制协议来传输消息,这样效率就高了不少。
融云:http://www.rongcloud.cn/
环信:http://www.easemob.com/

原文地址:http://www.toutiao.com/a6407775361819672833/




欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3