TsgcWebSocketHTTPServer › Propriedades › SessionClass
Classe utilizada pelo servidor para criar novas sessões HTTP; defina-a como seu próprio descendente de TIdHTTPSession para armazenar dados personalizados em cada sessão.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
Por padrão, o servidor cria objetos TIdHTTPSession simples. Defina SessionClass como um descendente de TIdHTTPSession e o servidor criará essa classe em vez disso, para cada sessão, incluindo as criadas automaticamente quando AutoStartSession está habilitado. O session ID único, o cookie de sessão, SessionTimeOut e a remoção de sessões obsoletas continuam funcionando exatamente como antes.
Sobrescreva o construtor virtual CreateInitialized em seu descendente se desejar inicializar seus próprios campos quando a sessão é criada. Leia a sessão de volta a partir de ARequestInfo.Session e faça o cast para sua classe.
SessionClass deve ser definida antes de o servidor ser ativado, e não pode ser nil. Se você atribuir sua própria SessionList, esta propriedade deixa de se aplicar, porque sua lista decide qual classe criar. Consulte Sessions para uma explicação completa e observe que o evento OnCreateSession não é a maneira recomendada de alterar a classe de sessão.
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;