消息服务客户端核心设计

消息服务防止阻塞的文章中,我描述了我对于大数据包消息阻塞流的思考,并选择了一个解决方案。现在,我来设计客户端的工作流程。

客户端的工作流程为:发送登陆消息、开启主接收消息循环处理一般消息、发送消息、发送下线消息。

主消息循环中可能出现接收一般消息、接收大数据包消息。发送消息也包括发送一般消息、发送大数据包消息。这里先记着。

先从登陆开始

登陆的时候客户端要建立套接字连接,发送登录请求,等待服务端返回消息,得到允许后获得用户信息。

定义登录请求为空消息,内容长度为0,头部包含用户名、密码和客户端版本。

消息循环的初级设计

发送消息

发送消息是由事件驱动的,可能是用户主动发出消息,也可能是计划任务,比如客户端检查更新,甚至是外部事件比如网络状况变化导致重新登陆。

其中超大型文件中转处理不会再初级设计中实现。