PHP/Ajax/MySQL で簡単なチャット アプリケーションを作成しました。
私は定期的にこれら2つのメソッドを呼び出しています-
setInterval("GetChatParticipants()",5000);
setInterval("GetChatMessages()",1000);
クライアントの設計により、[ログアウト] または [サインアウト] ボタンがないため、ユーザーがブラウザーを閉じたことを検出し、その時点でデータベースから参加者レコードを削除する必要があります。onbeforeunload
ウィンドウのアンロードイベントでChromeがAjaxリクエストを受け入れることを拒否するため、使用したくありません。
そこで、リクエストを重ねてAjaxで実装しようと考えています。しかし、問題は、それをどのように正確に行うかです。Participant テーブルを更新し、last_active_time
現在時刻との差last_active_time
が 10 分以上ある場合は、ユーザーを削除する必要がありますか? それは実用的な解決策ですか、それともより良い解決策がありますか?