美文网首页领域架构程序员
谈如何选择IM通信系统协议

谈如何选择IM通信系统协议

作者: thetaray | 来源:发表于2017-10-17 19:38 被阅读146次

    了解完需求,开始做方案设计,最开始面临的选择之一,需要使用什么样的基础协议。IM系统也是一样,市面上可以被用来开发IM通讯系统的协议还是比较多。这里我先一一列举下:

    SIP:

        用来帮助提供跨越因特网的电话业务,一般网络电话业务会选择该协议完成业务。协议定义了发起呼叫,对方振铃,开始接听,会话建立等诸多流程,而且还非常成熟。会话建立完成后,就可以走数据通讯了,可以用它来完成单聊多人聊天业务。

        优点:用来做会话内聊天,视频通话,语音通话业务还是一个不错的选择。一款标准化的协议,支持该协议的开源工具将会很多。

        缺点:如果只是用来做单聊,多人聊天类似的业务的话,因为大量的交互冗余,将有过多的流量消耗,移动端APP对于流量和耗电量的损耗是特别看重的。

      私有RPC:

        一般采用TCP协议,高层的协议需要自己定义,包括公用的协议头部分和数据部分,

        优点:是能根据业务场景进行协议定制,做到节省流量,减少交互次数。

        缺点:如果定义者经验不够的话,协议局限性比较强,到后期极有可能制约业务需求发展。协议相关的SERVER端CLIENT端协议栈需要自己开发,这块需要投入大量的人物力。

      XMPP:

        XMPP的前身是Jabber,一个开源形式组织产生的网络即时通信协议。借助于XML易于解析和阅读的特性,使得XMPP的协议能够非常漂亮。 XMPP的即时通讯扩展应用部分是根据IETF在这之前对即时通讯的一个抽象定义的,与其他业已得到广泛使用的即时通讯协议,诸如AIM,QQ等有功能完整,完善等先进性。

        优点:业界使用很广的协议,有大量的开源实现,能帮助快速的开发高质量的应用。

        缺点:这个协议因为是基于XML的,所以对于流量损耗和网络带宽的要求还是比较高,所以他一直被用于PC电脑的上IM应用上面。

      SYMCML:

        一个简单、通用的可以用于工业界方面的数据同步协议。使用了该款协议的有FOXMAIL,

        优点:对于多设备同时使用,能给与很好的支持。

          缺点:协议本身就比较复杂,交互流程比较多,用户流量消耗比较大。不过基于该协议思想改进后的效果还是很好的,如WECHAT,FOXMAIL

      MQTT:

  IBM提出一种轻量级的,适合于低带宽、不可靠连接、嵌入式设备、CPU、内存资源紧张,适用于各种受限的环境的传输协议。最早使用于心脏起搏器的质量状态监控上。

  优点:

  有明确定义服务质量,对于不同的质量有不同交互流程要求。

  包体流量占用小,对于每个字节都有精确的定义。

  有大量的开源实现,能帮助快速的开发高质量的应用。

  缺点:

  协议本身不是基于IM业务设计的,一款基于二进制的协议,对于字节定义缺乏可扩展性,有时需要你在产品需求和标准协议实现上做出一些权衡。

  比如:publish应答不能带payload,如果想通过应答获得该条消息的系统时间,得想其他的办法。

      总结:

        对于开发一款基于IM为基础通讯的APP,没有一层不变的选择,我们只有根据产品需求,项目时间要求,去选择一款最合适的协议来开发我们的应用。

相关文章

  • 谈如何选择IM通信系统协议

    了解完需求,开始做方案设计,最开始面临的选择之一,需要使用什么样的基础协议。IM系统也是一样,市面上可以被用来...

  • IM (二):数据通信协议的选择

    *** 序: ***IM 中的数据通信协议指的是 IM 系统中应用层所使用的通信协议,该通信协议的设计效果会对 I...

  • 项目中IM项目自定义协议解析说明

    IM自定义协议解析说明 IM的协议文档参见IM协议文档 一、IM协议简介 在IM的通信中,采用的是自定义的协议 +...

  • 即时通讯IM总结

    即时通信(Instant Message /IM)的含义 有许多的IM系统,如AOL、Yahoo IM、 MSN以...

  • 服务端开发内容总结

    网络协议HTTP 协议TCP/IP 协议 操作系统原理线程间通信进程间通信 存储系统原理数据库/缓存 模块设计架构...

  • 基本原理

    什么是协议? 网络协议:规定网络双端如何通信。

  • 【大话存储】学习笔记(7章),OSI

    任何系统之间,如果需要通信,都需要一套自己的协议系统。这个协议系统一般要定义互相通信的语言,以及硬件。 OSI是被...

  • Binder Driver缺陷导致定屏问题分析

    本文讲解异步binder call是如何阻塞整个系统的,通过ramdump信息以及binder通信协议来演绎并还原...

  • 目录

    能用图形解决的,尽量不要用文字 操作系统 Linux架构 通信系统 通信架构 HttpHttp协议Http压力测试...

  • OSI模型和TCP/IP协议簇

    开放系统互连(Open System Interconnection)模型 TCP/IP协议簇 协议分层: 当通信...

网友评论

    本文标题:谈如何选择IM通信系统协议

    本文链接:https://www.haomeiwen.com/subject/aoyduxtx.html