消息协议设计

设计目标

可达有序,不重不漏【Qos2 + 时序性】

Qos是什么

Qos(Quality of Service)等级是发送与接收端的一种关于保证交付信息的协议,一共有3个等级(0~2)

最多一次(0)

最小的等级就是0,并且它保证一次信息尽力交付,一个消息不会被接收端应答,也不会被发送端存储再发送。这个也叫做“即发即启”。在tcp协议下就是这样。

最少一次 (1)

当Qos等级是1时,它保证消息会至少一次给接受者。但是消息可能被发送两次甚至更多。

只一次 (2)

它确保每个消息都只被接收到一次,也是最安全且最慢的服务等级。

评估标准

  1. 【性能】协议传输效率,尽可能的降低端到端的延迟
  2. 【兼容】既要向前兼容,也要向后兼容
  3. 【存储】减少消息包的大小,降低空间占用率
  4. 【计算】减少编码解码时造成的CPU使用率的权衡
  5. 【网络】尽可能的减少网络带宽
  6. 【安全】协议安全性,防止协议被破解
  7. 【迭代】尽可能的灵活扩展,支持IM复杂业务的严谨
  8. 【通用】可跨平台接入,H5,客户端,IOT设备
  9. 【可读】易于理解,方便调试