设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

开源移动通讯架构与XMPP

2014-12-17 09:46| 发布者: joejoe0332| 查看: 854| 评论: 0|原作者: timyang|来自: timyang

摘要: XMPP由于上下游良好的开源生态得到了广泛的采纳与应用,但是到了移动为主的时代,XMPP的不足也暴露出来。XMPP全称是Extensible Messaging and Presence Protocol(也称为Jabber),是一种支持消息及状态的协议,但在线 ...

  XMPP由于上下游良好的开源生态得到了广泛的采纳与应用,但是到了移动为主的时代,XMPP的不足也暴露出来。



  XMPP全称是Extensible Messaging and Presence Protocol(也称为Jabber),是一种支持消息及状态的协议,但在线状态在移动场景并是一个必需的feature。由于智能手机具有随时在线的特点,状态可以视为永远在线;即便在app没有打开的情况下,系统可以通过push等方式发送最新的信息,因此大部分面向移动的通讯软件直接去掉了状态的特性。因此设计成支持多终端状态的XMPP在移动领域并不是擅长之地。另外一方面XMPP是一种基于XML的协议,它的请求及应答机制也是主要为稳定长连网络环境所设计,对于带宽偏窄及长连不稳定的移动网络并不是特别优化,因此它的弊端就充分暴露出来了。


  移动领域也有不少非XMPP的开源实现,尽管赢得主流认可的不多。比较商业化的有telegram,其特性跟微信比较类似,在一些国家也取得了飞速发展,尽管其宣称的开源还不完全。国内有前几天蘑菇街发布的的TeamTalk,其开源地址是 https://github.com/mogutt 从发布的短短几天来看, star/fork 数非常可观。其介绍支持企业内部通讯场景,且具有完整的移动端支持。


  最近也在考虑在这方面做一些尝试,一个理想的适合移动时代的IM开源软件,它应该具有哪些因素?

  1. 分布式扩展能力。在XMPP领域,由于Openfire的简单易用,成为很多团队首选的方案,但使用Openfire的团队都需要接着思考扩展openfire的分布式扩展能力,以便承担更大的用户访问规模。
  2. 移动友好的协议,协议具有良好的长连及短连自适应能力,具有数据的增量更新能力,较低的重连成本等。有网友推荐MQTT http://mqtt.org/,尚未深入评估。
  3. 移动SDK,主要实现协议层及网络逻辑,以简化客户端接入及开发成本。
  4. 开发语言,更多考虑一些能带来编程乐趣的新型语言,在一定程度上,scale的问题可以做到与语言无关。


  在微博上交流的时候,一些网友还提到了XMPP的federation功能,federation类似邮件协议,利用XMPP可以实现多个域的用户互联互通。但由于此功能对于企业的商业化利益较难看清,因此在过去很长一段时间都没有得到充分发展。Google最近也放弃了多年来坚持的XMPP federation的支持。


  需要补充的是,尽管前面提到XMPP种种问题,但是也别低估一种新协议的认知成本,很多时候选择XMPP并不是因为它协议强大或多么适合用户的场景,而是当大众群体已经了解一种协议之后,即使这种方式存在种种问题,但还是较难广泛认可及接受一种方式或协议。在没有特殊原因的情况下,普通的通讯场景仍然建议使用XMPP方式。(文章转载自timyang


酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部