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 klasę potomną TIdHTTPSession, a serwer będzie tworzył tę klasę zamiast niej, dla każdej sesji, w tym tych tworzonych automatycznie, gdy włączone jest AutoStartSession. Unikalny identyfikator sesji, plik cookie sesji, SessionTimeOut oraz usuwanie nieaktywnych sesji działają dokładnie tak samo jak wcześniej.

Nadpisz wirtualny konstruktor CreateInitialized w swojej klasie potomnej, jeśli chcesz zainicjować własne pola podczas tworzenia sesji. Odczytaj sesję z powrotem 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ć. Zobacz Sesje serwera HTTP, aby uzyskać pełne wyjaśnienie, i zwróć uwagę, ż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