2016-04-09 20 views
0

私はチャットウェブアプリを作っています。ただ、「ログアウト」ボタンをクリックせずにタブまたはブラウザを直接閉じると、データベースの状態は「オンライン」と表示されることがわかりました。だから、ブラウザやタブが閉じられたときにユーザーをログアウトする方法は?セッションの代わりにCOOKIEを使用しています。私はスタックオーバーフローで多くを検索し、実際の解決策を見つけることができませんでした。ブラウザまたはタブが閉じているときにログアウトする

誰でも手伝ってもらえますか? ありがとうございます!

+0

過去に有効期限が切れているクッキーを設定しようとしましたか?これを確認してください:http://stackoverflow.com/questions/1783302/clear-cookies-on-browser-close明らかにあなたはSOで十分に検索していません! – Anubhab

+2

@Anubhab oncloseのAjaxコールを試すことができますが、合理的なセッションタイムアウトがあることを確認する必要があります。 – HenryDev

+0

これを参照してください:http://www.codeproject.com/Tips/566217/Session-killing-logout-in-server-when-browser-is-c – Manish62

答えて

0

コメントに多くの人があなたの質問を誤解しているようです。ブラウザを閉じたときにセッションCookieが削除されても、セッションが終了したことをWebアプリケーションに伝えません。

ユーザーがWebアプリケーションを開いているかどうかを確実に検出する唯一の方法は、ユーザーが最後に見たときにデータベース項目を更新するAJAX呼び出しを頻繁に行うことです。期待した数のAJAXコールが見逃された場合、それらはオフラインであるとみなすことができます。

もう1つの可能性は、切断時にユーザーのステータスを更新するために使用するWebソケットです。

新しいチャットメッセージを受け取るには、これらのシステムのいずれかを実装する必要があります。ユーザーが最後にそのシステムに接続されたときに確認するシステムを統合するだけでよいでしょう。

関連する問題