TsgcWebSocketHTTPServer속성 › SessionClass

SessionClass 속성

서버가 새 HTTP 세션을 생성할 때 사용하는 클래스입니다. 모든 세션에 사용자 정의 데이터를 저장하려면 자체 TIdHTTPSession 자손으로 설정하십시오.

구문

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

기본값

TIdHTTPSession

설명

기본적으로 서버는 일반 TIdHTTPSession 객체를 생성합니다. SessionClassTIdHTTPSession의 자손으로 설정하면, 서버는 AutoStartSession이 활성화되었을 때 자동으로 생성되는 세션을 포함하여 모든 세션에 대해 해당 클래스를 대신 생성합니다. 고유 세션 ID, 세션 쿠키, 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;

속성으로 돌아가기