TsgcWebSocketHTTPServer › Właściwości › SessionClass
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.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
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.
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;