TsgcWebSocketHTTPServerOlaylar › OnCreateSession

OnCreateSession Olay

HTTP sunucusunun yeni bir oturum oluşturması gerektiğinde tetiklenir, böylece uygulama özel bir TIdHTTPSession örneği sağlayabilir.

Sözdizimi

property OnCreateSession: TIdHTTPCreateSession;
// TIdHTTPCreateSession = procedure(ASender: TIdContext; var VHTTPSession: TIdHTTPSession) of object

Varsayılan Değer

Remarks

OnCreateSession, SessionState True olduğunda ve yeni bir oturum oluşturulmak üzereyken (genellikle geçerli bir oturum çerezi olmadan bir istek geldiğinde ve AutoStartSession True olduğunda) temel alınan Indy HTTP sunucusu tarafından çağrılır. İşleyici VHTTPSession öğesini nil olarak bırakırsa, sunucu oturumu kendisi oluşturur.

Bu olay, kendi oturum sınıfınızı kullanmanın önerilen yolu değildir. Bir örnek döndürdüğünüzde, sunucu bunu yalnızca oturum listesine ekler; buna bir oturum ID'si atamaz. Bu nedenle düz bir yapıcıyla oluşturulan bir oturumun oturum ID'si boş, oturum çerezi boştur ve sonraki istekte bir daha asla bulunamaz. Bunun yerine, torununuzu oluşturan ve yine de benzersiz oturum ID'sini, çerezi ve zaman aşımı işleyişini sizin için üreten SessionClass özelliğini kullanın.

Ayrıca, bu olayın içinde SessionList.CreateUniqueSession öğesini çağırmayın. O yöntem, yeni oturumu listeye zaten ekler ve işleyici döndüğünde sunucu bunu tekrar ekler, bu yüzden aynı oturum listede iki kez yer alır. Tüm resmi görmek için Oturumlar bölümüne bakın. Bir oturum etkin hale geldiğinde yalnızca tepki vermek için OnSessionStart kullanın.

Örnek


procedure OnCreateSession(ASender: TIdContext; var VHTTPSession: TIdHTTPSession);
begin
  // leave VHTTPSession as nil to let the server create the session
  Log('new HTTP session allocated');
end;

Olaylara Dön