下图表示uniGUI服务器的内部结构。每个uniGUI服务器具有的单个副本ServerModule,每台服务器创建一次, 同时根据用户活动动态创建和销毁每个会话。uniGUI会话包含一个称为MainModule的专用DataModule,它将为每个会话自动创建。它还包含一个名为MainForm的表单,这是Web应用程序的主要入口点。如果项目包含LoginForm,它将在MainForm之前被激活,以提供一种可靠且安全的用户登录方式。如预期的那样,每个会话可以包含其他几个DataModule和表单。
每次用户打开Web应用程序的新实例时,服务器都会创建一个新会话。在用户注销,关闭浏览器/选项卡或超时之前,会话将保持活动状态。每个会话都保持正在运行的Web应用程序的完整状态,因此uniGUI会话称为有状态。您可以将每个会话视为Web应用程序的私有副本,该副本与服务器地址空间中的其他会话共存,但与其他所有会话隔离。服务器使用唯一的“会话ID”创建每个会话,用于将客户端请求与会话正确关联(会话ID始终是AJAX请求的一部分)。欢迎加入Delphi开发局QQ群:32422310 Delphi控件源码下载网站
如果uniGUI应用程序只是一个ISAPI模块,则正在运行的服务器将实例化一个ISAPI处理程序。如果没有Web服务器,则正在运行的服务器将启用其内部Web服务器。在两种情况下,对活动Web服务器的所有请求最终都将进入正确的会话。
![](https://i-blog.csdnimg.cn/blog_migrate/79d1b7f8d7064ba0ac5a15712f2b538a.png)