TsgcWebSocketHTTPServer › Properties › SessionList
アクティブなHTTPセッションを保持するリストです。コードでセッションを管理するために読み取るか、セッションの保存場所を制御するために独自のリストを割り当ててください。
property SessionList: TIdHTTPCustomSessionList read GetSessionList write SetSessionList;
サーバーがアクティブ化されるまではnil
SessionList を読み取り、GetSession、CreateSession、CreateUniqueSession を使ってコードでセッションを検索、作成、削除します。このリストはサーバー起動時にのみ作成されるため、サーバーが有効でない間は nil です。
セッションの保存方法を完全に制御したい場合、たとえばデータベースに保存したり複数のサーバー間で共有したりする場合に、独自のリストを割り当てます。TIdHTTPDefaultSessionList から派生させ、仮想メソッドの CreateSession をオーバーライドしてください。CreateUniqueSession は内部でこれを呼び出すため、一意のセッション ID は引き続き自動生成されます。基盤となる Indy サーバーは実行中のセッションリストの差し替えを許可しないため、このリストはサーバーが起動される前に割り当てる必要があります。
When you assign your own list, the SessionClass property no longer applies, because your list decides which class to create. See Sessions for a full explanation.
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;