TsgcWebSocketHTTPServer › プロパティ › SessionClass
新しい HTTP セッションを作成するためにサーバーが使用するクラスです。すべてのセッションにカスタムデータを格納するには、独自の TIdHTTPSession 派生クラスに設定します。
property SessionClass: TsgcIdHTTPSessionClass read GetSessionClass write SetSessionClass;
// TsgcIdHTTPSessionClass = class of TIdHTTPSession
TIdHTTPSession
デフォルトでは、サーバーはプレーンな TIdHTTPSession オブジェクトを作成します。SessionClass を TIdHTTPSession の派生クラスに設定すると、サーバーは代わりにそのクラスを、すべてのセッションに対して作成します。これには AutoStartSession が有効なときに自動的に作成されるセッションも含まれます。一意のセッション ID、セッションクッキー、SessionTimeOut、および古いセッションの削除は、これまでとまったく同じように機能し続けます。
セッションが作成されるときに独自のフィールドを初期化したい場合は、派生クラスで仮想コンストラクタ CreateInitialized をオーバーライドしてください。セッションは ARequestInfo.Session から読み取り、独自のクラスにキャストします。
SessionClass はサーバーがアクティブになる前に設定する必要があり、nil にはできません。独自の SessionList を割り当てた場合、どのクラスを作成するかはリストが決定するため、このプロパティは適用されなくなります。詳しい説明については セッション を参照してください。また、OnCreateSession イベントはセッションクラスを変更するための推奨される方法ではないことに注意してください。
type
TMySession = class(TIdHTTPSession)
private
FUserName: String;
public
property UserName: String read FUserName write FUserName;
end;
oServer := TsgcWebSocketHTTPServer.Create(nil);
oServer.SessionState := true;
oServer.SessionTimeout := 600000;
oServer.SessionClass := TMySession;
oServer.Active := true;