协议设计原则
1. 安全
鉴权和授权是安全的两大要素,协议设计时,鉴权和授权是必须要考虑进去的
2. 高效
高效包括开发高效和运行高效,开发高效要求协议易懂、易编码、易解码,运行高效要求编解码算法高效、没有多余无用的体积
3. 可扩展
既能满足现有需求,在未来发生较大需求变更时,协议也能适应
协议格式参考
协议格式说明
- 当5个字节的消息头满足不了消息元数据时,可以增设二级消息头,譬如命令码为9899时,有二级消息头,二级消息头里重新定义业务命令码
- 碰到上传图片或文件的需求时,不建议走IM协议,而是走HTTP协议,在HTTP中做好业务规范
- 命令码一览
协议交互设计
- 第一个消息必须是鉴权协议,确定客户端身份
- 客户端定时发送心跳消息
下集预告
用t-io从零写一个像微信的IM(05):架构设计