基于websocket的多用户网页五子棋(六)
一.前期回顾
对于前面内容不太了解的,可以去看一看下面的文章:
https://blog.csdn.net/weixin_60668256/article/details/152548482?fromshare=blogdetail&sharetype=blogdetail&sharerId=152548482&sharerefer=PC&sharesource=weixin_60668256&sharefrom=from_link
二.session的认识以及session管理模块的认识
1.什么是session
session管理的时候是有时间限制的:
2.websocketpp库中定时器的使用:
void print(const std::string& str)
{std::cout << str << std::endl;
}
当我们没有取消定时任务的时候,会在我们访问改网站的时候,五秒钟过后直接输出ltw
但是如果取消任务,代表我们的任务会立即执行
3.session类的设计
#include "util.hpp"typedef enum{UNLOGIN,LOGIN
}ss_status;class session{private:uint64_t _ssid;//标识符uint64_t _uid; //session对应的用户IDss_status _status;//用户状态:登录 or 未登录wsserver_t::timer_ptr _tp;//session关联的定时器public:session(uint64_t ssid);~session();void set_user(uint64_t uid);uint64_t get_user();bool is_login();void set_timer(const wsserver_t::timer_ptr &tp);wsserver_t::timer_ptr& get_timer();};
4.session类的实现
#ifndef __M_SS_H__
#define __M_SS_H__#include "util.hpp"typedef enum{UNLOGIN,LOGIN
}ss_status;class session{private:uint64_t _ssid;//标识符uint64_t _uid; //session对应的用户IDss_status _status;//用户状态:登录 or 未登录wsserver_t::timer_ptr _tp;//session关联的定时器public:session(uint64_t ssid):_ssid(ssid),_statu(UNLOGIN){DLOG("SESSION %p 被创建!!",this);}~session(){DLOG("SESSION %p 被释放!!",this);}void set_user(uint64_t uid){_uid = uid;}uint64_t get_user(){