TsgcWebSocketHTTPServer › 속성 › SessionClass
서버가 새 HTTP 세션을 생성할 때 사용하는 클래스입니다. 모든 세션에 사용자 지정 데이터를 저장하려면 자체 TIdHTTPSession 파생 클래스로 설정하십시오.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
기본적으로 서버는 일반 TIdHTTPSession 객체를 생성합니다. SessionClass를 TIdHTTPSession의 하위 클래스로 설정하면, 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;