TsgcWebSocketHTTPServer › プロパティ › SessionList
アクティブな HTTP セッションを保持するリストです。コードでセッションを管理するために読み取るか、セッションの格納場所を制御するために独自のリストを割り当てます。
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
サーバーがアクティブになるまで nil
GetSession、CreateSession、CreateUniqueSession を使用して、コードでセッションを検索、作成、削除するには SessionList を読み取ります。このリストはサーバーが起動したときにのみ作成されるため、サーバーがアクティブでない間は nil です。
セッションの格納方法を完全に制御する必要がある場合、たとえばデータベースに保存したり、複数のサーバー間で共有したりする場合は、独自のリストを割り当てます。TIdHTTPDefaultSessionList から派生し、仮想メソッド CreateSession をオーバーライドします。CreateUniqueSession が内部でそれを呼び出すため、一意のセッション ID は引き続き自動的に生成されます。基礎となる Indy サーバーは実行中にセッションリストを置き換えることを許可しないため、このリストはサーバーがアクティブになる前に割り当てる必要があります。
独自のリストを割り当てると、SessionClass プロパティは適用されなくなります。どのクラスを作成するかはリストが決定するためです。詳しい説明については セッション を参照してください。
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;