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)。通信能够在这三者的任意两个之间双向发生。
服务器
同时承担了客户端信息记录,连接管理和信息的路由功能。
网关
承担着与异构即时通信系统的互联互通,异构系统可以包括 SMS(短信),MSN,ICQ等。
基本的网络形式是
单客户端
通过TCP/IP连接到
单服务器
,然后在之上传输XML。
所有从一个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