TsgcWebSocketHTTPServerWłaściwości › SessionList

SessionList Właściwość

Lista przechowująca aktywne sesje HTTP; odczytaj ją, aby zarządzać sesjami z poziomu kodu, lub przypisz własną listę, aby kontrolować, gdzie sesje są przechowywane.

Składnia

property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;

Wartość domyślna

nil do czasu aktywacji serwera

Uwagi

Odczytaj SessionList, aby wyszukiwać, tworzyć lub usuwać sesje według kodu, używając GetSession, CreateSession i CreateUniqueSession. Lista jest tworzona dopiero przy starcie 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 aby trzymać je w bazie danych lub współdzielić między kilkoma serwerami. Wyprowadź klasę z TIdHTTPDefaultSessionList i przesłoń wirtualną metodę CreateSession; CreateUniqueSession wywołuje ją wewnętrznie, więc unikalny identyfikator sesji nadal jest generowany za Ciebie. Lista musi zostać przypisana przed aktywacją serwera, ponieważ leżący u jej podstaw serwer Indy nie pozwala na podmianę listy sesji w trakcie działania.

Gdy przypiszesz własną listę, właściwość SessionClass przestaje obowiązywać, ponieważ to Twoja lista decyduje, którą klasę utworzyć. Zobacz Sessions, aby uzyskać pełne wyjaśnienie.

Przykład


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;

Wróć do Właściwości