TsgcWebSocketHTTPServer › Propiedades › SessionClass
Clase usada por el servidor para crear nuevas sesiones HTTP; asígnele su propio descendiente de TIdHTTPSession para almacenar datos personalizados en cada sesión.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
De forma predeterminada, el servidor crea objetos TIdHTTPSession simples. Establezca SessionClass con un descendiente de TIdHTTPSession y el servidor creará esa clase en su lugar, para cada sesión, incluidas las que se crean automáticamente cuando AutoStartSession está habilitado. El ID de sesión único, la cookie de sesión, SessionTimeOut y la eliminación de sesiones caducadas siguen funcionando exactamente igual que antes.
Sobrescriba el constructor virtual CreateInitialized en su descendiente si quiere inicializar sus propios campos cuando se crea la sesión. Recupere la sesión de ARequestInfo.Session y conviértala a su clase.
SessionClass debe establecerse antes de que se active el servidor, y no puede ser nil. Si asigna su propia SessionList, esta propiedad deja de aplicarse, porque su lista decide qué clase crear. Consulte Sesiones para una explicación completa, y tenga en cuenta que el evento OnCreateSession no es la forma recomendada de cambiar la clase de sesión.
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;