TsgcWebSocketHTTPServer › Właściwości › SessionList
Lista przechowująca aktywne sesje HTTP; odczytaj ją, aby zarządzać sesjami z poziomu kodu, lub przypisz własną listę, aby kontrolować miejsce przechowywania sesji.
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
nil do momentu aktywacji serwera
Odczytaj SessionList, aby wyszukiwać, tworzyć lub usuwać sesje z poziomu kodu, używając GetSession, CreateSession i CreateUniqueSession. Lista jest tworzona dopiero po uruchomieniu serwera, więc dopóki serwer nie jest aktywny, ma wartość nil.
Przypisz własną listę, gdy potrzebujesz pełnej kontroli nad sposobem przechowywania sesji, na przykład trzymając je w bazie danych lub współdzieląc je między kilkoma serwerami. Wyprowadź klasę z TIdHTTPDefaultSessionList i nadpisz wirtualną metodę CreateSession; CreateUniqueSession wywołuje ją wewnętrznie, więc unikalny identyfikator sesji nadal jest generowany za Ciebie. Lista musi być przypisana przed aktywacją serwera, ponieważ bazowy serwer Indy nie pozwala na zastąpienie listy sesji w trakcie jego działania.
Gdy przypiszesz własną listę, właściwość SessionClass przestaje obowiązywać, ponieważ to Twoja lista decyduje, jaką klasę utworzyć. Zobacz Sesje serwera HTTP, aby uzyskać pełne wyjaśnienie.
type
TMySessionList = class(TIdHTTPDefaultSessionList)
public
function CreateSession(const RemoteIP, SessionID: string)
: TIdHTTPSession; override;
end;
function TMySessionList.CreateSession(const RemoteIP, SessionID: string)
: TIdHTTPSession;
begin
Result := TMySession.CreateInitialized(Self, SessionID, RemoteIP);
SessionList.Add(Result);
end;
oServer.SessionList := TMySessionList.Create(nil);
oServer.Active := true;