}
}
}
3.2 详细设计
3.2.1 HttpSession类
HTTP服务下的Session模块,它是用于服务器端, HttpSession类其主要功能是需要检查有多少人已过期,Session是指一个终端用户与交互系统进行通信的时间间隔,通常指从注册进入系统到注销退出系统之间所经过的时间以及如果需要的话,可能还有一定的操作空间。所以必须在该类中加入一个定时器定期检查过期会话,包含验证http请求和决定哪些应用程序的请求匹配的方法。
代码分析:
public class HttpApplicationManager : IDisposable
{
//### 当前服务器领域
public static string CurrentDomain;
//### 当前服务器领域
public static string RootDirectory;
//### 默认页面
public static string DefaultPage;
//###服务端口
public static int ServicePort;
//### 会话字典的键:应用独特的名称/值:是SessionManager
ConcurrentDictionary<string, SessionManager> applications;
//### 定时器
Timer managerTimer;
public HttpApplicationManager()
{
//初始化 ConcurrentDictionary<TKey, TValue> 类的新实例,该实例为空,具有指定的并发级别和容量,并为键类型使用默认比较器。
applications = new ConcurrentDictionary<string, SessionManager>();
managerTimer = new Timer(ManagerTimerMain, applications, 1000, 1000);
}
/// <summary>
///尝试添加一个空session管理
/// </summary>
/// <param name="app"></param>
/// <returns></returns>
public bool AddHttpApplication(SessionManager app)
{
if (applications.ContainsKey(app.Info.UniqueApplicationName))
return false;
return applications.TryAdd(app.Info.UniqueApplicationName, app);
}
/// <summary>
/// 定时器定期检查过期会话
/// </summary>
/// <param name="e"></param>
protected void ManagerTimerMain(object e)
{
ConcurrentDictionary<string, SessionManager> manager = (ConcurrentDictionary<string, SessionManager>)e; HTTP服务器软件系统的设计与实现(8):http://www.751com.cn/jisuanji/lunwen_3170.html