51学通信论坛2017新版

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 1294|回复: 0
打印 上一主题 下一主题

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

[复制链接]

 成长值: 15613

  • TA的每日心情
    开心
    2022-7-17 17:50
  • 2444

    主题

    2544

    帖子

    7万

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    74104
    跳转到指定楼层
    楼主
    发表于 2017-9-16 17:26:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    移动互联网最重要的应用类型是什么?一定是社交。这也是人们用手机最核心的需求。社交应用也分为好几种,比如像微信、陌陌这种即时通信应用,属于强社交应用,其信息交互是双向的;像微博、朋友圈这种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/

    原文地址:http://www.toutiao.com/a6407775361819672833/
    扫描并关注51学通信微信公众号,获取更多精彩通信课程分享。

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?立即注册

    x
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    Archiver|手机版|小黑屋|51学通信技术论坛

    GMT+8, 2025-1-31 15:46 , Processed in 0.063871 second(s), 33 queries .

    Powered by Discuz! X3

    © 2001-2013 Comsenz Inc.

    快速回复 返回顶部 返回列表