会话类

这个类的作用和逻辑比较简单,用户在登录后会创建一个会话类的实例,之后客户端发起各种增删查改操作,都会附带一个session_id;服务端在收到session_id后,会找到这个实例,进一步找到其对应的用户实例,来执行具体的业务逻辑。

属性和方法如下:

实例属性:

属性名称 类型 描述
id std::string 会话id,用户登录时随机生成,作为后续通信表明身份的凭证。
active_time Base::DateTime 该会话最后一次活动的时间
user User& 对应的用户实例的引用

实例方法

实例方法 描述
各属性的get方法 包括get_id()、get_active_time()、get_user()

类方法

类方法 描述
static Session& CreateSession(User& user) 创建session实例,需要传入用户实例的引用
static Session* GetSessionPointer(const std::string& session_id) 通过session_id获取session实例
static bool EraseSessionByUser(const User& user) 删除用户实例对应的session
static void AsyncLoadFromDataBase() 从数据库加载信息到STL容器(异步),以后获取信息就可以跳过数据库直接从内存获取
static void WaitForReady() 等待会话库就绪(和上面的方法成对,调用该方法会阻塞线程,直到已经从数据库加载完所需数据)

具体代码略。

results matching ""

    No results matching ""