TsgcWebSocketHTTPServer属性 › SessionClass

SessionClass 属性

服务器用于创建新 HTTP 会话的类;将其设置为你自己的 TIdHTTPSession 后代,即可在每个会话中存储自定义数据。

语法

property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession

默认值

TIdHTTPSession

备注

默认情况下,服务器会创建普通的 TIdHTTPSession 对象。将 SessionClass 设置为 TIdHTTPSession 的后代,服务器就会改为为每个会话创建该类,包括在启用 AutoStartSession 时自动创建的会话。唯一会话 ID、会话 cookie、SessionTimeOut 以及过期会话的移除都会与之前完全一样地工作。

如果您想在会话创建时初始化自己的字段,请在您的派生类中覆盖虚拟构造函数 CreateInitialized。从 ARequestInfo.Session 读回会话并将其强制转换为您的类。

SessionClass 必须在服务器激活之前设置,且不能为 nil。如果您分配了自己的 SessionList,则此属性不再适用,因为由您的列表决定创建哪个类。完整说明请参见 Sessions,并请注意 OnCreateSession 事件不是更改会话类的推荐方式。

示例


type
  TMySession = class(TIdHTTPSession)
  private
    FUserName: String;
  public
    property UserName: String read FUserName write FUserName;
  end;

oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.SessionState := true;
oServer.SessionTimeout := 600000;
oServer.SessionClass := TMySession;
oServer.Active := true;

返回属性