HTTP服务器软件系统的设计与实现(9)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

HTTP服务器软件系统的设计与实现(9)


            foreach (var sessionMgr in manager.Values)
            {                
                //### check expired session
                sessionMgr.UnloadExpiredInstances();
            }
        }

        /// <summary>
        /// 返回一个的应用实例对应的请求。
        /// </summary>
        /// <param name="e"></param>
        /// <param name="application"></param>
        /// <returns>false if not exist</returns>
        public bool TryGetApplicationInstance(HttpRequest e, out ApplicationInstanceBase application)
        {
            ///
            /// 从请求得到正确的应用程序的逻辑很简单,
            /// 对于识别应用程序,我们看看在url中的主要路径,是后的第一的域domain.xxx前:
            /// 所以http://domain.xxc/maindir/dir1/dir2,dir1/dir2在主路径MAINDIR的相对的内部路径。
            /// 该规则是在主路径指示的应用程序的名称,所以
            /// http://localhost:8080/chat/index.html 识别的聊天应用程序
            /// http://localhost:8080/chat/chat2/index.html 识别的聊天应用程序
            ///             
            ///

            application = null;
            
            string[] paths = e.Path.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
           
            if (paths.Length == 0) return false;
           
            string mainPath = paths[0];
            ///
            /// 立即检查是否存在的ApplicationUniqueName等于主路径
            ///
            if (!applications.ContainsKey(mainPath)) return false;
            //Ok the applicatoin Exist!
            
            SessionManager sessionMgr = applications[mainPath]; (责任编辑:qin)