2011-04-26 346 views
1

私はサーバーサイド言語としてPHPを使用しており、フロントエンドとしてFlexを使用しています。私のアプリケーションには、さまざまなレベルのユーザーがいます。オペレータのオンライン状態QCによれば、QCはいくつかのジョブをオンラインで割り当てる。彼はブラウザを自動的に閉じるときに、ユーザーのオンライン/オフライン状態を更新したいだけです。 FlexはPHPサービスを呼び出しますが、応答が得られません。 DB(MySQL)が更新されていません。どのようなヘルプがありがとうございます。ユーザーがブラウザを閉じると自動的にログアウトする

+0

どのくらいの頻度で更新する必要がありますか?数分おきに足りるでしょうか、それとも生き生きとする必要がありますか? – Mikecito

+0

こんにちは@Mikecito、ユーザーがログインすると、ログアウトするまでオンラインステータスは「1」になります。彼がブラウザを直接閉じると、私は彼のオンラインステータスをDBで0にしたいです。彼のオンラインステータスを更新したいだけです。私はセッション時間を設定していません。 –

答えて

7

私が知る限り、これは不可能です。あなたの最善の策は、ユーザがログオンしたときにdatetimeをデータベースに保存してから、AJAXスクリプトを実行してデータベースの1分ごとにそのユーザの時刻を更新することです。次にユーザーがdatetimeを1分以上経過しているかどうかを確認して、ユーザーがログインしているかどうかを確認できます。このアプローチの「解決方法」を調整することができます。例えば5分ごとにチェックします。

+0

こんにちは@cbh、あなたはそれを詳細に説明してくださいか、この問題のためのリンクやサンプルを入手できますか? –

+0

@Naveen kumar Pavuturi - あなたはあなたの問題をより明確にする必要があります。私の反応は質問のタイトルのためでした。この問題についてのあなたの説明は、FlexとPHP(またはPHPとDB)の間の通信問題を指摘しているようです。さらに、問題の説明や問題のコードスニペットを含めて、問題の説明を編集して問題を説明してください。 – RANGER

0

ブラウザが閉じる前にサービスコールをしたい場合は、Javascriptでフレックス/フラッシュクライアントにメッセージを送信してからflexを呼び出して、サーバにクライアント/ブラウザが終了しています。サービスコール(要求/投稿)が成功すると、フラッシュクライアントはJavaScriptに応答してブラウザを終了します。ここで注意しなければならないのは、ブラウザからブラウザまで一貫してjavascriptブロックを使用できるとは思わないということです。フラッシュがサービスコールを開始する前に、ブラウザが閉じることがあります。がんばろう。

ところで、コールバックリスナーをExternalInterfaceで登録し、コールバックリスナーで参照されているjavascript関数を使用してjavascript信号Flexを登録することができます。

0

ありがとうございました。私はAJAXについて混乱しましたが、最終的に完了しました。私はブラウザを閉じている間、関数を呼び出しています。 <body onunload='Logout();'>。ここに関数があります。

var xmlhttp = new XMLHttpRequest(); url = "http://*****.com/public/LogOutThruJS.php?UserID="+UserID+"&LogHistoryId="+LogHistoryId; function Logout() { xmlhttp.open("GET", url,false); xmlhttp.send(null); xmlhttp=null; delete xmlhttp;
}
私はその控えめなものを望んでいます。

関連する問題