一种可高度扩展的IM通讯协议

本文介绍了即时通讯(IM)的常见通信协议及其优缺点,如XMPP、MQTT和Protobuf。作者提出了一种自定义的通用通讯协议,结合JSON文本和二进制文件,旨在解决复杂数据结构和跨平台解析的问题。该协议基于对象,包含头部码、总长度、文本长度等结构,并详细阐述了解析流程。
摘要由CSDN通过智能技术生成

1、前言

      说到即时通讯,那就不能了解下IM通讯协议,它是即时通讯的核心与灵魂,一个好的通讯协议可以减少软件代码的复杂度以及维护难度,增加软件的可扩展性与可读性,反之会让实现代码结构变得臃肿不堪,甚至难以阅读。

2.常用IM通信协议及优缺点

  1. XMPP协议:
    优点:基于xml协议,容易理解,使用广泛,易于扩展。
    缺点:流量大,在移动终端也耗电。交互过程复杂。多被pc时代的产品使用,不适合移动时代的IM产品,即使我们基于xmpp进行改进,简化握手过程,改进文件传输机制,但是它的基因决定了如何改进,他都不适合移动互联网时代的IM产品
  2. MQTT协议:
    优点:轻量级的、基于代理的“发布/订阅”模式的消息传输协议。适合推送服务
    缺点:协议简单,但是需要自己扩展好友,群组等功能。
  3. Protobuf协议:
    优点:非常小、非常快、非常简单,一条消息数据用Protobuf序列化后的大小是JSON的1/10、XML格式的1/20、是二进制序列化的1/10。
    缺点:不能表示复杂的数据结构
    需要和其它系统做消息交换的,对消息大小很敏感的。那么protobuf适合了,它语言无关,消息空间相对xml和json等节省很多。
    小数据的场合。如果你是大数据,用它并不适合。

以上协议中Protobuf算是比较不错的一个选择方案,但是对于复杂一些的数据结构定义有些不足。

3.自定义的一种通用通讯协议<

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值