通用模块与功能

登录、注册、退出

只考虑单价架构的情况

通用模块

gateway

网关,管理客户端连接。

若用户未登录,将消息转发到登录服务处理。

若用户登录,将消息转发到客户端对应的agent。

gateway 保存连接信息。就算有多个gateway,客户端连接的时候要选择一个并一直使用这个。

local fd = {
    fd = 1,
    user_id = 1,
    agent = nil,
}

login

登录服务,请求来的时候,进行账号校验,未注册要提示注册

登录成功返回需要的信息,由gateway 转发给agent_mgr 创建agent。

agent

可以指代一个客户端,负责这个客户端的业务逻辑

agent_mgr

agent管理,负责agent的 创建销毁

唯一的,保存所有线上玩家的状态

保存 uid-->agent 的映射

保存 用户状态

scene

场景服务,如开房间游戏,一个scene就是一个房间,保存房间的状态和玩家(agent)信息

通用功能

登录

gateway收到消息,看fd-->agent 是否存在(登录),未登录将消息转发给 login 服务

login 解析协议,注册协议的话,进行注册处理。登录协议的话,进行登录校验,校验通过返回协议响应。

gateway 收到登录成功响应,让agent_mgr 服务创建agent,构建fd-->agent 的映射,返回给客户端登录成功的响应。

之后该fd 连接 的消息都转发到这个 agent。

最后更新于