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