用t-io从零写一个像微信的IM(04):IM协议设计

2020-12-24 18:13:16 浏览数 (1)

协议设计原则

1. 安全

鉴权和授权是安全的两大要素,协议设计时,鉴权和授权是必须要考虑进去的

2. 高效

高效包括开发高效运行高效,开发高效要求协议易懂、易编码、易解码,运行高效要求编解码算法高效、没有多余无用的体积

3. 可扩展

既能满足现有需求,在未来发生较大需求变更时,协议也能适应

协议格式参考

协议格式说明

  1. 当5个字节的消息头满足不了消息元数据时,可以增设二级消息头,譬如命令码为9899时,有二级消息头,二级消息头里重新定义业务命令码
  2. 碰到上传图片或文件的需求时,不建议走IM协议,而是走HTTP协议,在HTTP中做好业务规范
  3. 命令码一览

协议交互设计

  1. 第一个消息必须是鉴权协议,确定客户端身份
  2. 客户端定时发送心跳消息

下集预告

用t-io从零写一个像微信的IM(05):架构设计

0 人点赞