TsgcWebSocketHTTPServerWłaściwości › SessionClass

SessionClass Właściwość

Klasa używana przez serwer do tworzenia nowych sesji HTTP; ustaw ją na własnego potomka TIdHTTPSession, aby przechowywać własne dane w każdej sesji.

Składnia

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

Wartość domyślna

TIdHTTPSession

Uwagi

Domyślnie serwer tworzy zwykłe obiekty TIdHTTPSession. Ustaw SessionClass na potomka klasy TIdHTTPSession, a serwer utworzy zamiast tego tę klasę, dla każdej sesji, w tym dla tych tworzonych automatycznie, gdy włączone jest AutoStartSession. Unikalny identyfikator sesji, plik cookie sesji, SessionTimeOut oraz usuwanie nieaktualnych sesji działają dokładnie tak jak wcześniej.

Nadpisz wirtualny konstruktor CreateInitialized w swojej klasie potomnej, jeśli chcesz zainicjować własne pola przy tworzeniu sesji. Odczytaj sesję z ARequestInfo.Session i rzutuj ją na swoją klasę.

SessionClass musi być ustawione przed aktywacją serwera i nie może mieć wartości nil. Jeśli przypiszesz własną SessionList, ta właściwość przestaje obowiązywać, ponieważ to Twoja lista decyduje, jaką klasę utworzyć. Pełne wyjaśnienie znajdziesz w Sessions, i zauważ, że zdarzenie OnCreateSession nie jest zalecanym sposobem zmiany klasy sesji.

Przykład


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;

Wróć do Właściwości