TsgcWebSocketHTTPServer › Propriétés › SessionClass
Classe utilisée par le serveur pour créer de nouvelles sessions HTTP ; définissez-la sur votre propre descendant de TIdHTTPSession pour stocker des données personnalisées dans chaque session.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
Par défaut, le serveur crée des objets TIdHTTPSession ordinaires. Définissez SessionClass sur un descendant de TIdHTTPSession et le serveur créera cette classe à la place, pour chaque session, y compris celles créées automatiquement lorsque AutoStartSession est activé. L'ID de session unique, le cookie de session, SessionTimeOut et la suppression des sessions périmées continuent de fonctionner exactement comme avant.
Redéfinissez le constructeur virtuel CreateInitialized dans votre descendant si vous souhaitez initialiser vos propres champs à la création de la session. Relisez la session depuis ARequestInfo.Session et transtypez-la vers votre classe.
SessionClass doit être défini avant que le serveur soit activé, et ne peut pas être nil. Si vous affectez votre propre SessionList, cette propriété ne s'applique plus, car votre liste décide quelle classe créer. Consultez Sessions pour une explication complète, et notez que l'événement OnCreateSession n'est pas la manière recommandée de changer la classe de session.
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;