[PHP-users 10343] ブラウザを閉じた場合のソケット通信切断方法

aiko php-users@php.gr.jp
Wed, 25 Sep 2002 10:10:42 +0000


こんにちは。aikoです。
いつもお世話になっております。

PHP(WEBサーバー) ←→ 同サーバー(マシン)内のプロセス(仮にAとする)
間でソケット通信を行いたいと思っているのですが、
少し気になることが出てきたためメールしています。


やりたい事は
●ブラウザでログイン処理を行う
	1.サーバー側でAとソケット接続
	2.Aにログインしてよいか問い合わせ
	3.OKならば、ログイン(セッションSTART)。NGならば、ログイン不可画面。
	※ログイン中は定期的にAに”ログイン中である”ということを知らせる

●ブラウザでログアウト処理を行う
	1.セッションクリア
	2.サーバー側でAとのソケット切断
	3.ログアウト

という処理を行いたいのですが、
この場合、ユーザーがログアウト処理を行わなかった場合
(ブラウザで×ボタンを押したときなど)
サーバー側でソケット接続されたままになってしまいますよね。

これはとても問題があるのでなにか回避策はないかと考えています。
PHPでのソケット接続はクライアント接続なので
Aと通信したいときにその都度、接続したら切断してという処理を行うのが一番良い
気はするのですが。

なにか他に案はありますでしょうか。

セッションが切れたら、切断処理をするとか。
(でもこの場合、セッションが切れたことをどうやって判断したらいいのでしょう
か?
 サーバー側にはセッションファイル残りますよね。)

過去ログ等検索してみたのですが、
ソケットについての記事があまり見当たらなかったため、行き詰まってしまいまし
た。

どなたかご教授の程お願いします。




_________________________________________________________________
かわいくて愉快なイラスト満載 MSN キャラクター http://character.msn.co.jp/