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;