专业的编程技术博客社区

网站首页 > 博客文章 正文

如何开发一款类似微信、陌陌这样的移动即时通信应用?

baijin 2024-09-18 11:50:12 博客文章 3 ℃ 0 评论

移动互联网最重要的应用类型是什么?一定是社交。这也是人们用手机最核心的需求。社交应用也分为好几种,比如像微信、陌陌这种即时通信应用,属于强社交应用,其信息交互是双向的;像微博、朋友圈这种Feeds流应用,属于弱社交应用,信息交互是单向的。这篇文章简单讲一下移动端的即时通信应用(Instant Message)的开发原理。


QQ是PC端最常用的即时通信工具,PC客户端之间通信一般是直连为主、转发为辅,服务器起到的作用主要是传递系统消息,并帮助客户端之间建立直连通路,只有当对方不在线时,才会把离线消息传给服务器,再由服务器等好友上线转发给他。

移动端的IM应用与PC端有所不同,由于在移动客户端之间建立直连通路难度较大,所以移动客户端之间通信一般采用的都是服务器转发的方式,客户端先把消息传给服务器,再由服务器转发给对方用户。

最常用的移动IM通信协议是XMPP(Extensible Messageing and Presence Protocol)协议。XMPP是一种基于XML的协议,具有超强的可扩展性。 经过扩展以后的XMPP可以通过发送扩展的信息来处理用户的需求。

XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。 XMPP目前被IETF国际标准组织完成了标准化工作。标准化的核心结果分为两部分: 核心的XML流传输协议, 基于XML流传输的即时通讯扩展应用。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。


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/

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表