TsgcWebSocketHTTPServer › Propriedades › SessionList
Lista que contém as sessões HTTP ativas; leia-a para gerenciar sessões via código, ou atribua sua própria lista para controlar onde as sessões são armazenadas.
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
nil até o servidor ser ativado
Leia SessionList para pesquisar, criar ou remover sessões via código, usando GetSession, CreateSession e CreateUniqueSession. A lista só é criada quando o servidor inicia, portanto ela é nil enquanto o servidor não está ativo.
Atribua sua própria lista quando precisar de controle total sobre como as sessões são armazenadas, por exemplo, mantendo-as em um banco de dados ou compartilhando-as entre vários servidores. Descenda de TIdHTTPDefaultSessionList e sobrescreva o método virtual CreateSession; CreateUniqueSession o chama internamente, portanto o session ID único ainda é gerado para você. A lista deve ser atribuída antes de o servidor ser ativado, porque o servidor Indy subjacente não permite que a lista de sessões seja substituída enquanto está em execução.
Quando você atribui sua própria lista, a propriedade SessionClass deixa de se aplicar, porque sua lista decide qual classe criar. Consulte Sessions para uma explicação completa.
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;