• 締切済み

セッション管理におけるクライアント同時接続制限について。

皆さんこんにちは。セッション管理について教えて下さい。 Perlを使用し、cgiでWebのUIを作製中でして、CGI::Session.pmのモジュールで セッション管理を行っており、クライアントの同時接続数を1台に制限したいのですが、 うまくいかずに困っております。 クライアントからアクセスがあった場合に、最新のセッションを $session->expire 及び $session->empty で確認し、期限切れ、又は無効となっていたら新規セッションを発行している為、 クライアントがログアウトした場合は$session->deleteでサーバ内のセッションファイルを 削除できて問題はないのですが、ブラウザのxボタンで閉じてしまった場合、サーバ内の セッションファイルが削除されず、他のクライアントがログインできない状況になってしまいます。 セッションのデータはサーバ内のディレクトリに、セッションIDのみcookieで クライアントに保存という形態をとっております。 何か良い方法はないでしょうか?何卒ご教授のほど、お願い致します。 OS:FedraCore3 使用言語:Perl 5.8.6 Webサーバ:thttpd

みんなの回答

回答No.1

クライアント側から、cgiに対して一定時間ごとにHTTPリクエストを出すようするというのは、どうでしょうか。 metaタグを用いて再読込するか、 <meta http-equiv="refresh" content="60"> もしくは、javascript のxmlhttprequest を投げるようにするとか ただ、この方法にしろ、利用者がログイン状態のまま、PCの前から長時間離れてしまうと、 ほかのクライアントがログインできませんが。

noname#64639
質問者

お礼

chaimasuka様、ご回答頂きましてありがとうございます。 javascriptのxmlhttprequestですね。調べて検討してみます。 ありがとうございました。

関連するQ&A