TsgcHTTPServer › Özellikler › SessionList
Etkin HTTP oturumlarını tutan liste; kodla oturumları yönetmek için okuyun veya oturumların nerede saklandığını kontrol etmek için kendi listenizi atayın.
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
nil sunucu etkinleştirilene kadar
GetSession, CreateSession ve CreateUniqueSession kullanarak kodla oturum aramak, oluşturmak veya kaldırmak için SessionList'i okuyun. Liste yalnızca sunucu başladığında oluşturulur, bu nedenle sunucu etkin değilken nil'dir.
Oturumların nasıl saklandığı üzerinde tam kontrole ihtiyaç duyduğunuzda, örneğin onları bir veritabanında tutmak veya birden çok sunucu arasında paylaşmak için kendi listenizi atayın. TIdHTTPDefaultSessionList'ten türetin ve sanal CreateSession yöntemini geçersiz kılın; CreateUniqueSession bunu dahili olarak çağırır, böylece benzersiz oturum kimliği yine de sizin için üretilir. Liste, sunucu etkinleştirilmeden önce atanmalıdır, çünkü alttaki Indy sunucusu çalışırken oturum listesinin değiştirilmesine izin vermez.
Kendi listenizi atadığınızda, SessionClass özelliği artık uygulanmaz, çünkü hangi sınıfın oluşturulacağına listeniz karar verir. Ayrıntılı bir açıklama için Sessions konusuna bakın.
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;