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,此属性将不再适用,因为由您的列表决定要创建哪个类。完整说明请参阅 会话,并请注意 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;

返回属性