TsgcWebSocketHTTPServer › Özellikler › SessionClass
Sunucunun yeni HTTP oturumları oluşturmak için kullandığı sınıf; her oturumda özel veri saklamak için bunu kendi TIdHTTPSession alt sınıfınıza ayarlayın.
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
Sunucu varsayılan olarak düz TIdHTTPSession nesneleri oluşturur. SessionClass öğesini TIdHTTPSession öğesinin bir alt sınıfına ayarlayın; sunucu, AutoStartSession etkinleştirildiğinde otomatik olarak oluşturulanlar dahil, her oturum için bunun yerine o sınıfı oluşturacaktır. Benzersiz oturum kimliği, oturum çerezi, SessionTimeOut ve eskimiş oturumların kaldırılması tıpkı öncekiyle aynı şekilde çalışmaya devam eder.
Oturum oluşturulduğunda kendi alanlarınızı başlatmak istiyorsanız, türetilmiş sınıfınızda sanal yapıcı CreateInitialized yöntemini geçersiz kılın. Oturumu ARequestInfo.Session üzerinden geri okuyun ve kendi sınıfınıza dönüştürün.
SessionClass, sunucu etkinleştirilmeden önce ayarlanmalıdır ve nil olamaz. Kendi SessionList'inizi atarsanız, bu özellik artık geçerli olmaz, çünkü hangi sınıfın oluşturulacağına sizin listeniz karar verir. Tam bir açıklama için Sessions'a bakın ve OnCreateSession olayının oturum sınıfını değiştirmek için önerilen yol olmadığını unutmayı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;