IM协议设计方案
客户端与系统通过消息交互, 消息必须有可扩展性。
系统在有条件的情况下可以考虑开放协议。
消息严格独立的,即状态独立,客户端有一个状态机,这个状态机负责是否解析、处理、响应系统的消息。
消息分两种,广播消息和专有消息。广播消息发给所有的用户,专有消息系统与单独的用户间交互。
专有消息安全级别很高其它用户无法偷听、识别、分析。
系统和用户都必须有机制来避免恶意攻击、偷听、破坏(比如洪水攻击)。
多线程异步传输
客户端:
架构严格分层设计:应用层、消息层、安全层、传输层、线程管理层。
应用层:上层业务、游戏、应用软件
*消息层:各种消息的处理、状态机的管理。
安全层:加密
传输层:udp的可靠传输
线程管理层:各种定时器管理、线程同步、资源分配
消息层又分为以下几层:
一、鉴权层
二、P2p基本通话层
三、群组管理层
四、与系统交互层
五、打洞层
六、Tcp业务层
反向消息:(客户端发向系统)
登录
注销登录
心跳信息
更新用户信息
搜索用户
获取用户信息
不需认证方式添加好友
删除好友
需要认证的方式添加好友
设置隐身、示忙等状态
确认收到系统消息
发送消息
在对方好友列表上删除自己
获取好友清单
获取在线好友
群操作指令
系统(与客户端类似):
前向消息:(系统下发给客户端)
收到消息(服务器发起)
收到系统消息(服务器发起)
收到好友状态改变消息(服务器发起)